Добавление триггерной команды для автозаполнения функции в 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 в вашу личную папку автозаполнения, и она будет использоваться вместо оригинала.