我想给我的zsh提示符加上颜色。为此,我使用以下代码:
export PS1=%F{blue}%n%#但是,为了使其正确,我必须将%f添加到PS1值中,如下所示:
export PS1=%F{blue}%n%#%f当省略%f时,行为很奇怪--不仅颜色会影响提示符,而且当我键入例如ls -l时,其输出的第一行也会被着色:

设置PS1颜色值如何影响其他命令?难道不应该只关注提示符吗?
发布于 2019-10-31 19:50:42
%f告诉zsh外壳停止使用指定的前景色。zsh快速展开手册页说:
%F(%f)使用不同的前景色开始(停止),如果终端支持的话。
如果不告诉zsh重置前景色,那么后续的前景字符就会得到该颜色,直到指定了新的前景色(例如,绿色的普通文件)。
发布于 2019-10-31 19:51:56
有终端命令可以切换到一种颜色。这是维持不变的。然后你就会转回来。这可以直接在终端或您的特殊zsh特定命令中使用Esc代码来完成。
echo \\033[31m red \\033[34m blue \\033[m and black again(所需反斜杠的数目可能取决于您的shell)
zsh解释%F和%f,并根据终端的不同将它们转换为与上述代码类似的Esc代码。
https://unix.stackexchange.com/questions/549751
复制相似问题