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に

切り替わります。
色の分け方はかなり適当なので、必要に応じて書き換えてください。