どういうことかというと、こういう感じですね。git ブランチ名のあとに、ステージされて(いる|いない)変更点があるかどうかを S/U で表示しています。
zsh では、git に代表される VCS の情報を取得することができ、git に限って言えばブランチ名だけでなく、ステージされているファイルやステージされてないファイルの有無なんかも取得することができます。これをプロンプトに反映してやれば、今カレントディレクトリ下にあるリポジトリに commit が漏れているファイルがあるか、といったことを一目で把握できるようになるということになります。
上記の実現方法として、以下のようなことをしています。詳細は zshcontrib(1) を見れば良いです。
autoload -U colors colors autoload -Uz vcs_info autoload -Uz add-zsh-hook zstyle ':vcs_info:*' enable git cvs svn hg # git, cvs, svn, mercurial で有効化 zstyle ':vcs_info:git:*' check-for-changes true # commit 漏れとかがあるかどうかのチェックを有効化 zstyle ':vcs_info:git:stagedstr:*:' S # ステージされた変更点があることを示す文字列 zstyle ':vcs_info:git:unstagedstr:*' U # ステージされてない変更点があることを示す文字列 zstyle ':vcs_info:*' formats '%{'${fg[magenta]}'%}[%s %b] %{'${fg_bold[red]}'%}%c%u%{'${reset_color}'%}' # $vcs_info_msg_N_ に格納される文字列 PROMPT_USERHOST='%{'${fg[blue]}'%}%n@%M%{'${reset_color}'%}' PROMPT_TIME='%U%D{%T}%u' PROMPT_STATUS='%(?|%{'${fg[green]}'%}|%{'${fg[red]}'%})%# %{'${reset_color}'%}' # プロンプト RPROMPT="[%~]" # コマンド入力の度に呼び出す関数 update_vcs_info () { vcs_info PROMPT="$PROMPT_USERHOST $PROMPT_TIME $vcs_info_msg_0_ $PROMPT_STATUS" } add-zsh-hook precmd update_vcs_info # precmd フックへの登録