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;141m
rxvt
zmodload zsh/nearcolor
print -P '%F{#ABCB8D}text%f'
팔레트에서 가장 가까운 색상이 선택됩니다(여기서는 150, \e[38;5;150m
과 동일한 이스케이프 시퀀스 %F{150}
).