web-dev-qa-db-ja.com

zsh ansiカラーコードはどのように機能しますか?

端末のホスト名をオレンジ色にしたい。それ、どうやったら出来るの?

22
bneil

まず、どの端末を使用しているか、またはそれがオレンジ色をサポートするかどうかはわかりません。鉱山は、赤、青、緑、シアン、黄、マゼンタ、黒と白をサポートしています。そして、これが私の端末で色を取得する方法です:


最初にautoloadを使用して色をロードする必要があります。以下を使用して色を読み込み、意味のある名前に割り当てます

#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%}'

%m文字列を使用して、プロンプトでホスト名を設定できます。だから、例えば赤いホスト名を設定するには、

${RED}%m${WHITE}\>

bneil.so>のようなものを出力します

18
abcd

端末で次のコードを実行すると、端末が256色をサポートしているかどうかがわかります。

for COLOR in {0..255} 
do
    for STYLE in "38;5"
    do 
        TAG="\033[${STYLE};${COLOR}m"
        STR="${STYLE};${COLOR}"
        echo -ne "${TAG}${STR}${NONE}  "
    done
    echo
done

また、各色のコードが38;5;xの形式で表示されます。ここで、xは、使用可能な256色のいずれかのコードです。また、"38;5""48;5"に変更すると、同等の背景色が表示されることに注意してください。次に、前述のように、好きな色を使用してプロンプトを構成できます。

31
Saad Farooq

Zshプロンプトのカスタマイズのアイデアに精通しているが、カラーコードに問題があるかどうかは、質問ではわかりません。

インターネットにはたくさんの情報があります。 2つのリンクは次のとおりです。

プロンプトのカスタマイズとカラーコードを使用した色の割り当ての両方をカバーする必要があります。

6
pavium

印刷する

<ESC>[33mHostname<ESC>[0m

エスケープ文字\ x1bであること

3
Hyperboreus