zsh で rbenv の Ruby のバージョンをプロンプトに表示させる
rbenv あるある: rbenv shell のつもりが rbenv local と打っていて、そのカレントディレクトリ以下での実行した Ruby のバージョンが意図しないバージョンになってしまってる。~/ でやりがち。
— セコン (@hotchpotch) January 5, 2014
たしかに、自分の使っている Ruby のバージョンがわからなくて辛い時が私もしばしばあるので、Ruby のバージョンをプロンプトに表示させてみることにしました。
単純に rbenv version
をコニョコニョしているだけです。
rbenv_version () { if [[ "`rbenv version | grep '.rbenv/version'`" = "" ]];then if [[ "`rbenv version | grep 'RBENV_VERSION'`" = "" ]];then local setting="L" else local setting="V" fi else local setting="G" fi RPROMPT="[☃ `rbenv version | cut -f1 -d' '`($setting)]" } add-zsh-hook precmd rbenv_version
rbenv global
で設定した Ruby だったら (G)
、rbenv local
で設定したものだったら (L)
、環境変数 RBENV_VERSION
で設定したもの (== rbenv shell
を呼んだ状態) だったら (V)
と表示されます。
設定してはみたものの、常時 Ruby のバージョンを意識する必要性はない気がするから、プロンプトの色がさりげなく変わるとかが良いのかもしれません。