2

Вероятно, проще просто использовать пример здесь. У меня есть функция ss которая просто вызывает:

sudo systemctl $argv

Завершение табуляции отлично работает с полной командой, но не для функции ss . То есть,

ss start mys<tab>

пытается завершить из файловой системы вместо использования функции завершения для команды systemctl .

1 ответ1

4

После некоторого исследования кажется, что в рыбе появятся две новые функции, ни одна из которых не включена в текущую стабильную версию (2.1.1).

Первый аргумент --wraps для function и complete , который включает наследование завершения. function foo --wraps=bar дает foo все дополнения, зарегистрированные для bar .

Второй - это сокращения через команду abbr , которые очень похожи на сокращения vim. abbr -a gco='git checkout' регистрирует аббревиатуру gco для расширения до git checkout . Ввод gco последующим пробелом или вводом расширяет аббревиатуру, что, естественно, позволяет любому зарегистрированному завершению работать.

Без этих функций единственное, что остается сделать - это написать собственный скрипт завершения для вашей функции / псевдонима, что глупо.

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