Когда вы определяете псевдоним alias g=git
, например , оболочка подхватит его и запустит соответствующую функцию автодополнения. Теперь есть программа, которая называется hub
, которая по сути является надмножеством git с некоторыми дополнительными функциями, специфичными для github. Рекомендуемый способ использования hub
— alias git=hub
. Конечно, это не вызовет функцию автодополнения для git, что имеет смысл.
Теперь, если я хочу иметь триггер автодополнения git для hub, единственный известный мне способ — это редактирование /usr/share/zsh/functions/Completion/Unix/_git
и добавление hub
первой строки в качестве триггера. Хотя это работает, это непрактично, так как этот файл будет перезаписан следующим релизом zsh. Предполагая, что hub не предоставит функцию автодополнения zsh в ближайшее время, есть ли другой способ добавить hub
команды триггера для функции автодополнения git?
решение1
Вы можете определить дополнительную папку автозаполнения, в которой могут быть ваши пользовательские определения. Если у вас есть что-то похожее на .zshrc по умолчанию, то вам просто нужно обновить$fpathпрежде чем позвонитьавтозагрузка -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 в свою личную папку автозаполнения, и он будет использоваться вместо оригинала.