26th Fri
Gitのブランチ名をRPROMPTに表示する方法を改良してみた
現在のディレクトリがgitの管理下にあるかどうか判定する方法を思いついたので、
walf443さんの方法
を改良してみました。
こんな感じに、gitで管理されてないディレクトリではブランチ名を表示しなくなります。

実際のzshrcは以下の通り。
sh>>
_set_env_git_current_branch() {
GIT_CURRENT_BRANCH=$( git branch &> /dev/null | grep '^*' | cut -b 3- )
}
_update_rprompt () {
if [ "git ls-files 2>/dev/null" ]; then
RPROMPT="[%:$GIT_CURRENT_BRANCH]"]"
else
RPROMPT="[%
fi
}
precmd()
{
_set_env_git_current_branch
_update_rprompt
}
chpwd()
{
_set_env_git_current_branch
_update_rprompt
}
<<--
git ls-filesがgitの管理下以外では何も返さない事を利用しています。
追記
2>/dev/nullが抜けていたので追加しました。
posted by
genki on Fri 26 Dec 2008 at 16:33 with 0 comments