zsh のオートコンプリート機能にトリガー コマンドを追加する

zsh のオートコンプリート機能にトリガー コマンドを追加する

のようなエイリアスを定義するとalias g=git、シェルはそれを拾い上げて、対応するオートコンプリート機能を実行します。 さて、 と呼ばれるプログラムがありますhub。これは基本的に git のスーパーセットで、github 固有の機能がいくつか追加されています。 を使用することをお勧めしhubますalias git=hub。 もちろん、これでは git のオートコンプリート機能はトリガーされませんが、それは理にかなっています。

さて、git のオートコンプリート トリガーを hub に使用したい場合、私が知っている唯一の方法は、最初の行を編集し/usr/share/zsh/functions/Completion/Unix/_gitてトリガーとして追加することhubです。これは機能しますが、このファイルは次の zsh リリースで上書きされるため、実用的ではありません。hub がすぐに zsh 補完機能を提供しないと仮定すると、hubgit のオートコンプリート機能のトリガー コマンドを追加する別の方法はありますか?

答え1

追加のオートコンプリートフォルダを定義して、その中にカスタム定義を入れることができます。デフォルトの.zshrcに似たものがある場合は、$fパス電話する前に自動ロード -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 を個人のオートコンプリート フォルダーにコピーして、元のファイルの代わりに使用できるようになります。

関連情報