私はプロンプトでprecmd
色付きの状態を生成するために使用します。git
。に似た文字列を作成して%F{green}master%f%F{red}%f
.に割り当てます$psvar[1]
。
私のヒントには%1v
テキスト表示が含まれています。
ただし、緑と赤のテキストではなく、割り当てられたリテラル値が表示されます。
zsh
内容を解析する方法はありますか$psvar
?
答え1
ヒント拡張は再帰的ではありません。プロンプトには存在するので、%1v
コンテンツは$psvar[1]
プロンプトに挿入されます。
にプロンプト拡張ディレクティブを入れないでください。$psvar
代わりにプロンプトの内容を入れてください。色を変更するには、ターミナルエスケープシーケンスを挿入してください。あなたはそれを使用することができますcolors
そのような理由で。
autoload -U colors
colors
… {
psvar[1]="$fg[green]$branch$fg[default]"
}
答え2
%-expandosの結果は再び拡張されないため、挿入された内容は
%v
最終プロンプトに文字通り表示されます。
だから唯一の方法はset -o prompt_subst
。