追加読書

追加読書

端末で256色のテキストを使用する方法を知っています。

printf "\033[38;5;196mhello\n"

しかし、背景色の場合、基本的な8つの色に制限されているようです。

printf "\033[41mhello\n"

256色を背景色として使用するには?

私の言葉は、端末はすでに色を知っているので可能でなければならないということです。しかし、構文は何ですか?

関連がある場合、これは私がterminatorターミナルエミュレータとzshシェルとして使用することです。

ベストアンサー1

では、zsh背景色と前景色を設定するための複数の組み込みメソッドがあるため、エスケープシーケンスをハードコーディングする必要はありません。

echoti setafターミナルsetnsiaの背景色を使用しfて背景色をechoti setab設定できます(対応するerm nfo関数の名前になることがあります)。bsetafsetabti

端末が256色をサポートし(gnome-terminatorなどのVTEベースの端末のように)、$TERM正しいエスケープシーケンスでterminfo項目を識別する値に正しく設定されていると仮定すると、うまく機能します。

$ echoti setab 196 | sed -n l
\033[48;5;196m$

print -Pまたは、%パラメータ拡張フラグでプロンプト拡張を使用できます。

$ print -rP '%K{196}' | sed -n l
\033[48;5;196m$

(これはsed -n l送信された対応するエスケープシーケンスを表示するためにここで使用されます$。これは行の終わりのみを表示し、出力の一部ではなく\033GNUsedコマンドlのESC文字表現です(8進数033バイトがあります)。ASCII値)

一部の端末(gnome-terminatorなどのVTEベースの端末を含む)もRGB仕様をサポートしています。この分野でできること

$ print -rP '%K{#ffffff}' | sed -n l
\033[48;2;255;255;255m$

(ここで、明るい白はすべての赤、緑、青のコンポーネントの最大値であるfffffffため表示されます。)ffこの場合、zshxtermスタイルのシーケンスはハードコードされます(参照:そこ背景)対応するterminfo関数がないためです。そうではありませんが、基準、これは現在、最新のFLOSS端末エミュレータの中で最も広くサポートされています。

%K%F前景の背景色を設定します。%k/%f基本色を復元します。

88または256パレットをサポートしていませんが、サポートしている端末の場合は、対応するRGB仕様に最も近い色を取得できるモジュールもzshあります。zsh/nearcolor

$ zmodload zsh/nearcolor
$ echoti colors
256
$ print -rP '%K{#ffffff}' | sed -n l
\033[48;5;231m$

(ここで私の256色ターミナルの色231は明るい白に最も近い、実際には明るい白です。)

X11rgb.txtファイルにアクセスできる場合X11カラー名次のようなもの:

typeset -A X11_bg X11_fg
while read -r r g b c; do
  [[ $r = [0-9]* ]] || continue
  printf -v hex %02x $r $g $b
  X11_fg[$c]=${(%):-%F{#$hex}}
  X11_bg[$c]=${(%):-%K{#$hex}}
done < /etc/X11/rgb.txt
X11_bg[default]=${(%):-%k} X11_fg[default]=${(%):-%f}

(Debianのようなシステムは/etc/X11/rgb.txtパッケージの一部として含まれていますx11-common)。

次のようにしてください。

print -r "$X11_bg[dark olive green]text$X11_bg[default]"

詳細については、次を参照してください。

  • man 5 terminfo
  • info zsh echoti
  • info zsh print
  • info zsh "Prompt Expansion"
  • info zsh "The zsh/nearcolor Module"

(一部のシステムでは、ページを使用するにはzsh-docソフトウェアパッケージまたはそれに対応するパッケージをインストールする必要があります。)info

おすすめ記事