Добавление триггерной команды для автозаполнения функции в Zsh

Когда вы определяете псевдоним как alias g=gitоболочка подберет его и запустит соответствующую функцию автозаполнения. Теперь есть программа под названием hub, который в основном является надстройкой git, с некоторыми дополнительными, специфичными для github функциональными возможностями. Рекомендуемый способ использования hub это к alias git=hub, Конечно, это не вызовет функцию автозаполнения для git, что имеет смысл.

Теперь, если бы я хотел иметь триггер git для автозаполнения для хаба, я знаю только один способ: /usr/share/zsh/functions/Completion/Unix/_git и добавление hub в первой строке как триггер. Хотя это работает, это не практично, поскольку этот файл будет перезаписан в следующем выпуске zsh. Предполагая, что концентратор не будет предоставлять функцию завершения Zsh в ближайшее время, есть ли другой способ добавления hub к командам триггера для функции автозаполнения в git?

1 ответ

Вы можете определить дополнительную папку автозаполнения, в которой могут быть ваши собственные определения. Если у вас есть что-то похожее на.zshrc по умолчанию, тогда вам просто нужно обновить $fpath перед вызовом autoload -Uz compinit.

Пример:

...
zstyle ':completion:*' use-compctl true
zstyle ':completion:*' verbose true
zstyle :compinstall filename "$HOME/.zshrc"

fpath=($HOME/autocomplete $fpath)

autoload -Uz compinit
compinit
# End of lines added by compinstall
...

После этого вы сможете скопировать обновленный _git в вашу личную папку автозаполнения, и она будет использоваться вместо оригинала.

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