舘野(id:secondlife)さんがやられてるのをみて以来、ずっとやってみたかったのでやってみた。
最初、をみてやってたのですが、環境変数を使うのが気に入らなかったのと、gitリポジトリじゃないディレクトリだと、余計な文字が入ってしまうのが消せなかったので、左プロンプトに git のブランチとステータスを、右プロンプトに git リポジトリとそれ以外のディレクトリを色分けして表示 - cooldaemonの備忘録を参考にして、最小限動くものを書きました。
function git_branch() { local branch if test -z $(git rev-parse --git-dir 2> /dev/null); then branch='---' else branch="${$(git symbolic-ref HEAD 2> /dev/null)#refs/heads/}" fi echo -n "($branch)" } RPROMPT='$(git_branch)
これでも動くには動きますが、プロンプトの再描画のたびにgit_branch()が走るので、あまり良くない感じです。
先にあげたエントリなどを参考に自分なり(そしてスマート)に書き換えて使った方が良いですよ。
関係無いけどrev-parseとかsymbolic-refとかはじめて知りました。