2

本文代码对我不起作用。我已将其所有代码粘贴到我的 .zshrc 中。

我有以下内容.zshrc

RPROMPT='%{\[0;33m%}%1v%{\[0m%}'

它应该表明您是否有工作。但是,它不适合我。

我想在正确的提示符处加一个 X,表示您有工作正在运行。

如果您在 Zsh 中有多个工作,您如何获得显示 X 的正确提示?

4

2 回答 2

4

您正在使用的代码将不起作用,因为它正在尝试使用$psvar您尚未设置的变量。可能那篇文章在其他地方提到了它。

无论如何,要显示 中的作业数RPROMPT,请使用

$> RPROMPT="%j Job(s)"

如果您至少有一项工作正在运行,要让它显示“X”,请使用

$> RPROMPT="%1(j.X.)"

查看手册zshmisc页的提示部分,或获取链接: http: //www.manpagez.com/man/1/zshmisc/。它解释了可用于在提示中显示信息的所有扩展序列。

于 2009-05-08T06:41:30.773 回答
0

看起来您的 ANSI 转义序列中缺少额外的左括号,而且我认为这并没有\[达到您的预期。

这就是你想要的:

RPROMPT="%(1j.%{^[[33m%} X%{^[[0m%}.)"

但是,您可能会发现提示显示后台有多少作业更有用:

RPROMPT="%(1j.%{^[[33m%} (%j jobs)%{^[[0m%}.)"

注意^[以上是文字转义字符——例如,0x1B. 在命令行上(或者在 Vim 的插入模式下,如果你使用 Vim 来编辑你的.zshrc),输入 Control-V 然后 Control-[ 来插入一个转义字符。

于 2009-05-08T06:29:05.330 回答