1

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

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

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

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

1 ответ1

0

Аргумент --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 comptions /remove. рыба ) со следующим содержанием:

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

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .