XtermとZshの色について混乱しています。 Zshの色を損なうことなくXtermを設定する方法は?

XtermとZshの色について混乱しています。 Zshの色を損なうことなくXtermを設定する方法は?

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'

(同じ)$PROMPTTrue Colorエスケープシーケンスをサポートする端末(例:xterm / vte ...(類似))、および88または256パレットをサポートしない端末(例:#ABCB8D\033[38;2;171;203;141mrxvt

zmodload zsh/nearcolor
print -P '%F{#ABCB8D}text%f'

パレットから最も近い色が選択されます(ここでは150、\e[38;5;150mと同じエスケープシーケンス%F{150})。

関連情報