ページ

2013/06/03

[zsh]Gitのコマンドやブランチ名を補完できるようにする

zshでgitのコマンドやブランチ名を補完できるようにする - QNYP Blogを見て、
記事中の動画のブランチ名がターミナルに常に表示されているせいか
何故かブランチ名をターミナルに常に表示させる方法として記憶が刷り込まれて
設定完了するまで気が付かなかった @wada811 です。

とりあえず色々補完ができたら便利そうなので設定しました。
Mac に最初から Git 入っていたと思う(とりあえず HomeBrew でインストールした記憶はない)ので
補完定義ファイルをダウンロードして設定する方式で設定しました。

まずは ~/.zsh/completion/ に補完定義ファイルを入れるためのディレクトリを作成します。
mkdir -p ~/.zsh/completion/
次は以下の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
curl -Oでリモートファイルをローカルファイルに書き込み保存してくれるらしい。Output か。
git-completion.zsh を _git にリネームする。
mv git-completion.zsh _git
以下のような構造になっていれば良いらしい。
tree ~/.zsh/completion
/Users/wada/.zsh/completion
├── _git
└── git-completion.bash

0 directories, 2 files
と、tree とか出てきて、なにこれ便利!いいな!と思ったらbrew install treeで使えるようになります。
あとは、vi ~/.zshrcで以下のように記述してsource ~/.zshrcする。
fpath=(~/.zsh/completion $fpath)

autoload -U compinit
compinit -u
rm -f ~/.zcompdump; compinitもした方が良いらしい。

ブランチ名の補完が効くようになったので今度はブランチ名を常に表示させる設定をしたい。