ZSH: псевдонимы завершения для подкоманд, например, "compdef foo = 'git log'" - PullRequest
1 голос
/ 30 марта 2020

У меня есть набор инструментов, которые передают все аргументы во внутренний вызов, например, "git log". Вот простой пример 1007 *. Есть ли способ сделать это?

1 Ответ

0 голосов
/ 02 мая 2020

Существует решение, которое будет работать с псевдонимами, но не с функциями или скриптами. В вашем случае с git log этого достаточно.

  1. Создайте псевдоним.
    mygitlog="git log --since='1 year ago'"

  2. Включить compinit для завершения zsh в вашем .zshr c.
    autoload -Uz compinit && compinit

  3. Отключить completealiases опция, которая запрещает внутреннее замещение псевдонимов до попытки завершения.
    unset completealiases

После ввода mygitlog и двойного нажатия Tab в Git репозитории, zsh предложит вам коммиты и теги, сделанные за последний год.

...