1 に答える
あなたはこれを持っています:
if which rvm-prompt &> /dev/null; then
if [ $(rvm-prompt i v g s) != "system" ]; then
rvm_ruby='%{$PR_RED%}‹$(rvm-prompt i v g s)›%{$PR_NO_COLOR%}'
fi
else
# We don't have `rvm-prompt`, try using `rbenv` instead.
fi
これが実際に何をしているのか見てみましょう。新しいターミナルを開くとzsh、~/.zshrc. あなたの~/.zshrcで、あなたは をsourceing していthemeます。したがって、zshロードすると、行った編集が実行されます。
最初にチェックするのは、 [builtin]rvm-promptを使用して検索できるかどうかです。これは、(の場合は続行) をチェックすることによって行われます。(見つからないことは別の問題であり、この回答とは実際には関係ありません)。zshwhichreturn codewhich0rvm-prompt
が見つかった場合は、編集を使用して、の出力が であるrvm-promptかどうかを調べます。そうではないので、への呼び出しを含むように設定します。rvm-prompt i v g ssystem$rvm_rubyrvm-prompt
次に、zshテーマのロードを続行し、最終的に終了して、への呼び出しを含む$PROMPT一連のものに設定します。テーマロジックを再検討しないことを覚えておくと非常に便利です! (そのため、編集後に必要です)!rvm-promptzshsource ~/path/to/theme
だから問題は何ですか?on shell startuprvm-promptと言わなければ、プロンプトの残りのセッションでからの出力を使用 します。(システムの場合、プロンプトにインジケーターは表示されません...空白のままになっているためです! )。system rvm-promptrvm-prompt rvmrvm_ruby
何が起こっているのかを理解したので、修正に取り組むことができます。私が考えることができる2つのアプローチがあります。
1.systemプロンプトから次の単語を削除します。
if which rvm-prompt &> /dev/null; then
rvm_ruby='%{$PR_RED%}‹$(rvm-prompt i v g s | sed -e "s/system//")›%{$PR_NO_COLOR%}'
else
# We don't have `rvm-prompt`, try using `rbenv` instead.
fi
<>これは機能しますが、次の場合にプロンプトに(赤) が表示さrvm-promptれsystemます。
╭─@charmander.local ~ ‹ruby-1.9.3›
╰─ rvm default
╭─@charmander.local ~ ‹ruby-1.9.3›
╰─ rvm use system
Now using system ruby.
╭─@charmander.local ~ ‹›
╰─
これは便利かもしれません。イライラすると思います。
2.よりスマートに使用する$PROMPT:関数を書く。
あなたのtheme:
function current_rvm() {
if which rvm-prompt &> /dev/null; then
if [ $(rvm-prompt i v g s) != "system" ]; then
# The double quotes make it work, single quotes do not work.
echo "%{$PR_RED%}‹$(rvm-prompt i v g s)›%{$PR_NO_COLOR%}"
else
# `rvm-prompt` is `system`
echo ''
fi
else
# We don't have `rvm-prompt`, try using `rbenv` instead.
fi
}
local rvm_ruby='$(current_rvm)'
これはあなたにとってうまくいくはずです:
╭─@charmander.local ~ ‹ruby-1.9.3›
╰─ rvm use system
Now using system ruby.
╭─@charmander.local ~
╰─ rvm use default
Using /Users/simont/.rvm/gems/ruby-1.9.3-p362
╭─@charmander.local ~ ‹ruby-1.9.3›
╰─