2014-12-01 3 views
2

Как настроить завершение для функции на основе существующих определений завершения и аргументов по умолчанию.Пользовательское завершение zsh для функции, основанной на аргументах по умолчанию

Упрощенный пример (который может быть переписан как псевдоним):

gpl() { 
    git pull origin [email protected] 
} 

Это должно иметь такое же, как завершение после git pull origin.

ответ

4
compdef -e 'words[1]=(git pull origin); service=git; ((CURRENT+=2)); _git' ggl 

Этот массаж в $words, $service$CURRENT и вары, используемые системой завершения, а затем вызывает функцию _git завершения.

(Спасибо Микачу на #zsh).

+0

Спасибо за этот пример! – Francisco

+1

Что делает CURRENT + = 2? (это работает для меня, просто пытаюсь заглянуть) – skarface

+3

@skarface 'CURRENT' - текущее слово обрабатывается, и это увеличивает его на' 2' (потому что мы их вводим: от 'ggl' (1 слово) до' git pull изначальный' (3 слова)). – blueyed

Смежные вопросы