zshプロンプトのbgカラーオーバーライド

zshプロンプトのbgカラーオーバーライド

使用中ですが、zshインストールprompt fadeできません。oh-my-zsh

私の端末の背景は黒ではなく濃い青ですが、プロンプトは黒の背景に印刷されます。

プロンプトが端末の残りの部分と同じ背景色を使用するように、これをどのように無視できますか?

FWIW、正しい背景色をRPS1設定して使用しました。.zshrc

RPS1='[%F{yellow}%?%f] '

答え1

zsh背景色または前景色は、要求しない限り変更されません。

したがって、プロンプトの背景がデフォルトの色ではない場合、これは、ユーザーまたはアクティブにしたいくつかのプロンプトのテーマまたはサードパーティのカスタム拡張がその背景をデフォルトの色に設定したためです。

%K{colour}プロンプト拡張では、背景色はおよび%k(と同じ)に変わりますが、ほとんど%K{default}の端末では、黒の背景$'%{\e[40;37;1m%}foo%{\e[m%}'に白などのハードコーディングされたエスケープシーケンスを挿入することで変更できます。foo

そして%Sただ目立つモード(停止%s)、ほとんどの端末では、このモードは逆方向ビデオ(背景色と前景色の交換)を使用して実行されます。

したがって、デフォルトの背景色を維持するには、変数定義$PS1からその背景色を削除する必要があります。$PROMPT

またpromptsubst、このオプションが有効になっている場合、または同じ項目を$PS1含めると、拡張するように求められたときに拡張されるため、そこにある色の変更順序にも注意する必要があります。$(some command)${some_variable}

fadeプロンプトテーマを使用していることを示します。$PS1デフォルトでは、このテーマの変数は次のとおりです。

%F{green}%B%K{green}█▓▒░%F{white}%K{green}%B%n@%m%b%F{green}%K{black}█▓▒░%F{white}%K{black}%B %D{%a %b %d} %D{%I:%M:%S%P}
%}%F{green}%K{black}%B%~/%b%k%f

関数や実行の定義を%K{black}見ると、色がカスタマイズできる範囲の一部ではないことがわかります。したがって、黒い背景が気に入らない場合は、次のことができます。prompt_fade_setupprompt -h fade

  • 別のテーマに切り替える
  • このテーマに基づいて独自のプロンプトテーマを作成します(info zsh "prompt themes"詳細については参考資料を参照)。
  • アカウントに追加したPS1=${PS1//\%K{black}/%k}prompt fade~/.zshrc
  • を使用しないで、prompt fade変数PS1定義を変数~/.zshrc定義にコピーして%K{black}に置き換えます%k

関連情報