注意:git
コマンドがhub
コマンドへのエイリアスに設定されている場合は補完が働かない。
補完用ファイルを置くディレクトリを作成する(既に同じ用途のディレクトリがある場合はそれを使う)。
$ mkdir ~/.zsh/completion/
git-completion.bash
とgit-completion.zsh
をダウンロードする。この2つは同じディレクトリに置く必要がある。
$ cd ~/.zsh/completion/
$ curl -O https://raw.github.com/git/git/master/contrib/completion/git-completion.bash
$ curl -O https://raw.github.com/git/git/master/contrib/completion/git-completion.zsh
git-completion.zsh
を_git
にリネームする。
$ mv git-completion.zsh ~/.zsh/completion/_git
$ ls -l
total 136
-rw-r--r-- 1 juno staff 5384 5 9 16:58 _git
-rw-r--r-- 1 juno staff 56170 5 9 16:55 git-completion.bash
.zshrc
に以下のような設定を追加する。既に記述済みの設定がある場合は適宜調整する。
fpath=(~/.zsh/completion $fpath)
autoload -U compinit
compinit -u
fpath
の設定がcompinit
よりも後にあると動作しないので注意。
zcompdump
をリビルドする。
$ rm -f ~/.zcompdump; compinit
シェルを再起動すれば、git
でサブコマンドやブランチ名の補完が有効になる。