文章代码不为我工作。我已将其所有代码粘贴到我的.zshrc。

我的 .zshrc

中有以下内容
RPROMPT='%{\[0;33m%}%1v%{\[0m%}'

它应该表明你是否有工作。但是,它对我没有那样做。

我想在正确的提示下输入一个X来表明你有一份工作正在运行。

如果在Zsh中有多个作业,如何显示X的正确提示?

有帮助吗?

解决方案

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

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

<*>gt; RPROMPT="%1(j.X.)"
gt; RPROMPT="%j Job(s)"

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

<*>

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

其他提示

看起来你在ANSI转义序列中遗漏了额外的左括号,而且我认为 \ [正在按照你的意愿行事。

这是你想要的:

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

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

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

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top