zsh プロンプトで %F{color} と %{$fg[color]%} の違い

zsh プロンプトで %F{color} と %{$fg[color]%} の違い

プロンプトで前景色を設定する方法は2つありますzsh

PROMPT='%F{blue}$'
PROMPT='%{$fg[blue]%}$'

$どちらの行もヒントで青色を生成します。この2つの間に違いがありますか?プロンプトを設定するための好ましい方法はありますか?

カラーコードを指定するには、$F{160}または他の番号を指定できますが、指定できません%{$fg[160]%}。これは2つのオプションの唯一の違いですか?

ベストアンサー1

直接%F{...}エスケープは zsh C コードによって直接処理されます。用途は$fg[blue]という連想配列にアクセスすることですfg。これを行うには、colorszshに付属の関数を呼び出す必要があります。このPROMPT_SUBSTオプションにも依存するヒントです。

これら2つの方法で得られた結果はあまり変わらない。前者はよりきれいで、zshの端末状態追跡とよりうまく機能します。 2008年にzshに追加され、1999年にカラー機能が追加されました。最近では、単一の機能が不足するにはあまりにも古いzshを使用し続けないので、以前の方法に固執する必要はありません。

ご存知のように、%F端末は88色または256色をサポートする数字を処理できます。最新バージョンのzshを実行している場合は、たとえば、%F{#0000ff}True Color端末がある場合(またはzsh / nearcolorモジュールをロードする場合)、16進トリプルを指定することもできます。

おすすめ記事