web-dev-qa-db-ja.com

ANSI名以外にZshで名前付きの色を使用することは可能ですか?

ZshでANSIカラー名(赤など)を使用する方法があることは知っていますが、Zshは番号で256色をサポートしています。非ANSIカラーを名前で参照する方法があるかどうか知りたいですか? (変数に貼り付けるだけではありません)

6
xenoterracide

最初の16色は長い間標準でした(そしてほとんど標準的な色合いを持っています)。 256色は、xtermおよび互換性のある端末によって定義された最新の拡張機能です。 xtermのドキュメントには、16〜255色について次のように記載されています。

これらは、256色の拡張機能の色を指定します。デフォルトのリソース値は、6x6x6カラーキューブを作成するための16〜231色、およびグレースケールランプを作成するための232〜255色です。

ターミナル内から色を変更できます。 ctlseqs ファイルを参照してください。たとえば、print '\e]4;42;taupe\a'は色42をトープに変更します(色名は/etc/X11/rgb.txtまたはその他の配布に依存する場所で入手できます)。

16を超える色がデフォルト値であると想定することに満足している場合は、$color配列をrgb.txtの名前で拡張できます。 lg(6)ビットカラーで8ビットカラーの最も近い近似値を見つけるには、少し算術演算を行う必要があります。