Tweetrvmを使っていると、「いま何のRubyだっけ」と思うことがあったので、プロンプトに表示するようにしてみました。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | autoload -Uz vcs_info zstyle ':vcs_info:*' formats '(%s)-[%b]' zstyle ':vcs_info:*' actionformats '(%s)-[%b|%a]' precmd () { psvar=() # for vcs_info LANG=en_US.UTF-8 vcs_info [[ -n "$vcs_info_msg_0_" ]] && psvar[1]="$vcs_info_msg_0_" # for rvm [[ -n "$rvm_ruby_string" ]] && psvar[2]="$rvm_ruby_string" # for gemset ind=$(expr index $GEM_HOME $rvm_gemset_separator) if [ $ind -ne 0 ]; then length="$(expr length $GEM_HOME)" sub_length=`expr $length - $ind + 1` gem_spec=`expr substr $GEM_HOME $ind $sub_length` [[ -n "$psvar[2]" ]] && psvar[2]="$psvar[2]$gem_spec" fi } VCS_PROMPT="%1(v|%F{green} %1v%f|)" RUBY_PROMPT="%2(v| %U%B%F{magenta}(%2v)%f%b%u|)" PROMPT=$'%{\e[32m%}$LOGNAME@${WINDOW:+"[$WINDOW]"}%B:%b%{\e[m%}[%~]$RUBY_PROMPT$VCS_PROMPT\n%% ' |
上記のように設定すると下の画像のように表示されます。これでいろいろ迷うことが無くなりました。
追記
rvm-promptというのがあるそうで、それを使えばいろいろ表示できるようになるようです。でもまあせっかくやってみたので、gemsetも表示できるようにしてみました。
Tags: Ruby, rvm, zsh


