存在するこのスレッド、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
あなたの端末にはより多くの情報があるかもしれません。バラよりこの回答利用可能な色をナビゲートする方法を学びます。