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개가 넘으므로 더 거칠고) 일반적으로 한 터미널에서 다음 터미널까지 일관됩니다.

0-15 ANSI 색상 사용자 정의의 영향을 받지 않으려면 변경하지 않고 이러한 색상을 사용하고 싶을 것입니다.

또한보십시오zsh/nearcolor트루 컬러 이스케이프 시퀀스를 지원하지 않는 터미널은 zsh여전히 ​​RGB 사양을 사용할 수 있으며 zsh가 팔레트에서 가장 가까운 색상을 선택하도록 할 수 있습니다.

예를 들어:

print -P '%F{#ABCB8D}text%f'

(동일) $PROMPT트루 컬러 이스케이프 시퀀스를 지원하는 터미널(예: 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}).

관련 정보