Zsh
在沒有 PROMPT_SUBST 的情況下處理 $psvar 中的提示指令
我用來在我的提示
precmd
中生成彩色git
狀態。我生成一個類似 的字元串
%F{green}master%f%F{red}%f
,並將其分配給$psvar[1]
.我的提示包括
%1v
顯示文本。但是,我沒有看到綠色和紅色文本,而是分配的文字值。
有什麼辦法可以
zsh
解析內容$psvar
嗎?
提示擴展不是遞歸的。你有
%1v
你的提示,所以內容$psvar[1]
被插入到你的提示中。不要將提示擴展指令放入 中
$psvar
,而是放入提示內容。插入終端轉義序列以更改顏色。你可以使用colors
它。autoload -U colors colors … { psvar[1]="$fg[green]$branch$fg[default]" }
percent-expandos 的結果不會重新擴展,因此插入的任何內容都會按
%v
字面意思顯示在最終提示中。所以似乎唯一的方法是使用
set -o prompt_subst
.