26th
Fri
Gitのブランチ名をRPROMPTに表示する方法を改良してみた
現在のディレクトリがgitの管理下にあるかどうか判定する方法を思いついたので、 walf443さんの方法 を改良してみました。 こんな感じに、gitで管理されてないディレクトリではブランチ名を表示しなくなります。
実際のzshrcは以下の通り。
1 _set_env_git_current _branch() { 2 GIT_CURREN T_BRANCH=$( git branch &> /dev/null | grep '^\*' | cut -b 3- ) 3 } 4 5 _update_rp rompt () { 6 if [ "`git ls-files 2>/dev/null`" ]; then 7 RPROMPT="[%~:$GIT_CURREN T_BRANCH]" 8 else 9 RPROMPT="[%~]" 10 fi 11 } 12 13 precmd() 14 { 15 _set_env_g it_current _branch 16 _update_rp rompt 17 } 18 19 chpwd() 20 { 21 _set_env_g it_current _branch 22 _update_rp rompt 23 }
git ls-files
がgitの管理下以外では何も返さない事を利用しています。
追記
2>/dev/null
が抜けていたので追加しました。
posted by
genki
on Fri 26 Dec 2008
at 16:38