vcs_info使ってみた
http://d.hatena.ne.jp/mollifier/20090814/p1
このサイトを見て自分の.zshrcも書き換えた。
普段使うsvn,gitでとりあえず試してみたらこんな感じ。
ローカルファイルの状態に応じてバージョン情報の文字の色が
変化するように.zshrcをもうちょい編集。
# vcs_info autoload -Uz vcs_info zstyle ':vcs_info:*' formats '(%s)-[%b]' zstyle ':vcs_info:*' actionformats '(%s)-[%b|%a]' precmd () { psvar=() LANG=en_US.UTF-8 vcs_info [[ -n "$vcs_info_msg_0_" ]] && psvar[1]="$vcs_info_msg_0_" local st if [[ -n `ls -a | grep .git ` ]]; then # # git # st=`git status 2> /dev/null` if [[ -n `echo "$st" | grep "^nothing to"` ]]; then RPROMPT="%1(v|%F{green}%1v%f|)" elif [[ -n `echo "$st" | grep "^nothing added"` ]]; then RPROMPT="%1(v|%F{yellow}%1v%f|)" else [[ -n `echo "$st" | grep "^# Untracked"` ]]; RPROMPT="%1(v|%F{red}%1v%f|)" fi elif [[ -n `ls -a | grep .svn ` ]]; then # # svn # st=`svn status 2> /dev/null` if [[ -n `echo "$st" | grep "^[A-Z]" ` ]]; then RPROMPT="%1(v|%F{red}%1v%f|)" elif [[ -n `echo "$st" | grep "^!" ` ]]; then RPROMPT="%1(v|%F{yellow}%1v%f|)" else RPROMPT="%1(v|%F{green}%1v%f|)" fi else fi }
とりあえずgit,svnだけ対応した。
これでローカルファイルの編集状態に応じてgree,yellow,redに
切り替わります。
色の分け方はかなり適当なので、必要に応じて書き換えてください。