존재하다이 스레드, Yoda는 다음 색상을 사용하여 솔루션을 제안합니다.zsh
#load colors
autoload colors && colors
for COLOR in RED GREEN YELLOW BLUE MAGENTA CYAN BLACK WHITE; do
eval $COLOR='%{$fg_no_bold[${(L)COLOR}]%}' #wrap colours between %{ %} to avoid weird gaps in autocomplete
eval BOLD_$COLOR='%{$fg_bold[${(L)COLOR}]%}'
done
eval RESET='$reset_color'
내가 틀렸다면 정정하십시오. 그러나 올바르게 이해했다면 autoload colors && colors
색상을 이름으로 호출할 수 있으며 나머지 스크립트는 색상을 ${ $}
.
이로 인해 다음 질문에 대해 생각하게 되었습니다.
- 을 호출하여 어떤 색상이 로드되었는지 알 수 있는 방법이 있습니까
autoload colors && colors
? - 내 터미널이 어떤 색상을 지원하는지 어떻게 알 수 있나요?
답변1
이 colors
기능은 색상 이름과 유사한 속성(굵게, 밑줄 등)을 연관 배열에 기록합니다 color
. 이 배열은 이름을 00
⇔ normal
, 42
⇔ bg-green
, ... 등의 숫자인 터미널 속성 문자열과 연결합니다.
echo ${(o)color}
배열이 어떻게 구성되는지 이해하려면 함수의 소스 코드인 which colors
또는 를 살펴보세요 less $^fpath/colors(N)
.
이 함수는 8가지 표준 색상의 colors
이름과 이스케이프 문자열(연관 배열 fg
및 ) 만 정의합니다. bg
귀하의 터미널에는 더 많은 정보가 있을 수 있습니다. 바라보다이 답변사용 가능한 색상을 탐색하는 방법을 알아보세요.