本文的代码对我不起作用。我已将其所有代码粘贴到我的 .zshrc 中。
我有以下内容.zshrc
RPROMPT='%{\[0;33m%}%1v%{\[0m%}'
它应该表明您是否有工作。但是,它不适合我。
我想在正确的提示符处加一个 X,表示您有工作正在运行。
如果您在 Zsh 中有多个工作,您如何获得显示 X 的正确提示?
本文的代码对我不起作用。我已将其所有代码粘贴到我的 .zshrc 中。
我有以下内容.zshrc
RPROMPT='%{\[0;33m%}%1v%{\[0m%}'
它应该表明您是否有工作。但是,它不适合我。
我想在正确的提示符处加一个 X,表示您有工作正在运行。
如果您在 Zsh 中有多个工作,您如何获得显示 X 的正确提示?
您正在使用的代码将不起作用,因为它正在尝试使用$psvar
您尚未设置的变量。可能那篇文章在其他地方提到了它。
无论如何,要显示 中的作业数RPROMPT
,请使用
$> RPROMPT="%j Job(s)"
如果您至少有一项工作正在运行,要让它显示“X”,请使用
$> RPROMPT="%1(j.X.)"
查看手册zshmisc
页的提示部分,或获取链接: http: //www.manpagez.com/man/1/zshmisc/。它解释了可用于在提示中显示信息的所有扩展序列。
看起来您的 ANSI 转义序列中缺少额外的左括号,而且我认为这并没有\[
达到您的预期。
这就是你想要的:
RPROMPT="%(1j.%{^[[33m%} X%{^[[0m%}.)"
但是,您可能会发现提示显示后台有多少作业更有用:
RPROMPT="%(1j.%{^[[33m%} (%j jobs)%{^[[0m%}.)"
注意:^[
以上是文字转义字符——例如,0x1B
. 在命令行上(或者在 Vim 的插入模式下,如果你使用 Vim 来编辑你的.zshrc
),输入 Control-V 然后 Control-[ 来插入一个转义字符。