xterm(または私の場合はuxvtですが同じ使用)カラー設定とzsh PROMPTカラーが混同されます。
xterm 色を変更すると、zsh プロンプトの色が変わり、zsh プロンプトの色が不正確になります。
この状況をどのように処理する必要がありますか? zshプロンプト色を破るためにxterm色を設定する方法は?
はい.Xdefaults
!colors
!black
URxvt-ml*color0: #676767
URxvt-ml*color8: #757575
!red
URxvt-ml*color1: #EA6868
URxvt-ml*color9: #FF7272
!green
URxvt-ml*color2: #ABCB8D
URxvt-ml*color10: #AFD78A
!yellow
URxvt-ml*color3: #E8AE5B
URxvt-ml*color11: #FFA75D
!blue
URxvt-ml*color4: #71C5F4
URxvt-ml*color12: #67CDE9
!magenta
URxvt-ml*color5: #E2BAF1
URxvt-ml*color13: #ECAEE9
!cyan
URxvt-ml*color6: #21F1EA
URxvt-ml*color14: #36FFFC
!white
URxvt-ml*color7: #F1F1F1
URxvt-ml*color15: #FFFFFF
zshの例PROMPT
(oh my zshを使用しない):
PROMPT='%B%F{046}%n%B%F{123}@%B%F{046}%m %F{051}%b%F{015}%(4~|...|)%3~%B%F{239}$(__git_ps1)%f%k
%F{123}%#%f%b '
答え1
あなたが提供したリソース設定の有無にかかわらず、提供したzshプロンプトには違いはありません。
色は0から15までのみ変更されます。実際には、%F{green}
カラー2を使用すると違いがありますが(私には変更のために白い背景には目立ちません)、$PROMPT
ほとんどが15以上のパレットカラーを使用しています。 15+は、可能なすべての色を広く選択できることを意味します(ただし、200を超えるのでより粗い)、通常1つの端末から次の端末まで一貫しています。
0-15 ANSI 色のカスタマイズの影響を受けないようにするには、変更せずにこれらの色を使用したいと思います。
また見てくださいzsh/nearcolor
トゥルーカラーエスケープシーケンスをサポートしていない端末はzsh
まだRGB仕様を使用でき、zshにパレットから最も近い色を選択させることができます。
たとえば、
print -P '%F{#ABCB8D}text%f'
(同じ)$PROMPT
True Colorエスケープシーケンスをサポートする端末(例:xterm / vte ...(類似))、および88または256パレットをサポートしない端末(例:#ABCB8D
\033[38;2;171;203;141m
rxvt
zmodload zsh/nearcolor
print -P '%F{#ABCB8D}text%f'
パレットから最も近い色が選択されます(ここでは150、\e[38;5;150m
と同じエスケープシーケンス%F{150}
)。