设置 PS1 颜色

设置 PS1 颜色

我想为我的zsh提示着色。为此,我使用以下代码:

export PS1=%F{blue}%n%#

但为了让它正确,我必须像这样添加值%fPS1

export PS1=%F{blue}%n%#%f

当省略 时%f,行为很奇怪——不仅颜色会影响提示,而且当我输入 例如 时ls -l,其输出的第一行也被着色: 在此输入图像描述

设置颜色值如何PS1影响其他命令?它不应该只涉及提示吗?

答案1

告诉%fshellzsh停止使用指定的前景色。这zsh关于提示扩展的手册页说:

%F( %f)

如果终端支持,则使用不同的前景色开始(停止)。

如果您不告诉zsh重置前景色,则后续的前景字符将获得该颜色,直到指定新的前景色(例如绿色的纯文件)。

答案2

有终端命令可以切换到一种颜色。这是维持的。然后你会切换回来。这可以直接在终端中使用 Esc 代码或您的特殊zsh命令来完成。

echo \\033[31m red \\033[34m blue \\033[m and black again

(所需反斜杠的数量可能取决于您的 shell)

zsh解释 %F 和 %f 并将它们转换为如上所述的 Esc 代码,具体取决于终端。

相关内容