.zshrcに次のコードがあります。
local ruby_version=''
if which rvm-prompt &> /dev/null; then
ruby_version="$(rvm-prompt i v g)"
else
if which rbenv &> /dev/null; then
ruby_version="$(rbenv version | sed -e "s/ (set.*$//")"
fi
fi
そして、RPS1プロンプトに次のコードがあります。
RPS1='${PR_GREEN}$(virtualenv_info)%{$reset_color%} ${PR_RED}${ruby_version}%{$reset_color%}'
(簡潔にするために、PR_の色を設定したり、仮想環境を決定したりするコードは示していません。どちらも機能します。)
新しいシェルが作成されると(iTerm2の新しいウィンドウまたは新しいタブ)、Ruby情報は正しいです。ただし、ファイルによって決定されるように、別のRubyを使用するプロジェクトに切り替えると.ruby-version
、右側のプロンプトに表示されるRuby情報が更新されません。ファイルを再ソース.zshrc
すると、right-promptが更新されます。
Rubyのバージョンを決定するコードを関数に含める必要がありますか?ちなみに、setopt promptsubst
私は.zshrcにもあります。
ディレクトリを変更したときに右プロンプトが更新されない原因となっているものは何ですか?