“无法放置”;X";右键提示以Zsh表示作业数

“无法放置”;X";右键提示以Zsh表示作业数,zsh,prompt,job-control,Zsh,Prompt,Job Control,这个代码不适合我。我已将其所有代码粘贴到我的.zshrc 我的.zshrc RPROMPT='%{\[0;33m%}%1v%{\[0m%}' 它应该表明你是否有工作。然而,这对我来说并不是这样 我希望在正确的提示符处显示一个X,以指示您正在运行作业 如果您在Zsh中有多个作业,您怎么会有一个显示X的右提示符?看起来您的ANSI转义序列中缺少了额外的左括号,而且我认为\[并没有达到您的预期效果 以下是您想要的: RPROMPT="%(1j.%{^[[33m%} X%{^[[0m%}.)" 但是

这个代码不适合我。我已将其所有代码粘贴到我的.zshrc

我的
.zshrc

RPROMPT='%{\[0;33m%}%1v%{\[0m%}'
它应该表明你是否有工作。然而,这对我来说并不是这样

我希望在正确的提示符处显示一个X,以指示您正在运行作业


如果您在Zsh中有多个作业,您怎么会有一个显示X的右提示符?

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

以下是您想要的:

RPROMPT="%(1j.%{^[[33m%} X%{^[[0m%}.)"
但是,提示显示后台有多少作业可能会更有用:

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

注意:上面的
^[
是文本转义字符-例如,
0x1B
。在命令行上(或在Vim的插入模式下,如果您使用Vim编辑
.zshrc
)键入Control-V,然后键入Control-[插入转义字符。

您正在使用的代码无法工作,因为它试图使用未设置的
$psvar
变量。可能那篇文章在其他地方提到过它

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

$> RPROMPT="%j Job(s)"
如果至少有一个作业正在运行,要使其显示“X”,请使用

$> RPROMPT="%1(j.X.)"
查看
zshmisc
手册页的“提示”部分,或获取一个链接:。它解释了可用于在提示中显示信息的所有扩展序列。

感谢您的回答!--我现在在.zshrc:RPROMPT=$(echo“{\033[32m%}%~%1(j.%j.)”中有以下内容.有没有办法写同样的短文?我没有回声就试过了,但没有成功。