Команда Wrap с опциями в функции рыбы

Есть ли способ обернуть команду с параметрами в функции, чтобы отображались дополнения для этой команды с параметрами?

Например, я хочу быть в состоянии сделать это:

function remove --wraps='pikaur -R'
    pikaur -R $argv;
end

так что с помощью remove завершит с установленными пакетами, но это не работает.

1 ответ

Решение

--wraps Аргумент принимает только голую команду. Ты можешь использовать --wraps='pikaur' но нет --wraps='pikaur -R',

Если нужные вам завершения запускаются только тогда, когда -R флаг дается, используя --wraps может быть недостаточно. Вам нужно будет добавить свой собственный файл дополнений. К счастью, Fish делает это очень просто.

Есть ли команда, которая позволяет запрашивать или перечислять допустимые параметры? Я не знаком с pikaur, но, например, допустим, что действительные аргументы вашей функции были заданы командой вроде pikaur ls или же pikaur queryили, может быть, они подкаталоги /etc/pikaur, Если есть такая команда, вы можете создать файл дополнений для вашей функции (т.е. если ваша функция находится в ~/.config/fish/functions/remove.fish, а затем создать ~/.config/fish/completions/remove.fish) со следующим содержанием:

complete -c remove --no-files --arguments "(<query command>)"

Примечание. Если вы хотите сослаться на существующие дополнения, вы можете просмотреть каталоги, перечисленные echo $fish_complete_path,

Другие вопросы по тегам