我的 zsh 提示不是粗体

my zsh prompt is not bold

我正在自定义我的 zsh 终端,但在将我的提示转为粗体时我遇到了困难。我尝试了几种不同的方法,但 none 有效,而它确实对互联网上的人有效...

所以这是我的测试提示。 "HEY" 都是颜色 1,但第二个 "HEY" 应该是粗体。显然不是,取而代之的是,我得到了一些闪亮的红色,就像我的提示的第一部分,颜色是 9。wtf :)

这里是我在这种情况下使用的代码:

HEY%BHEY%b

我还注意到它对前 8 种颜色中的每一种都做同样的事情:黑色变成灰色,灰色变成白色,夜蓝色变成深蓝色,叶绿色变成亮绿色,粉色、黄色也是如此。 .

我还尝试在模数中使用一些转义序列,但是 none 起作用了:每次,模数都将其旁边的字符作为其参数,其余代码将显示为正常字符。 例如,这个:

PS1="%{\e[1;33%}test"

会显示这个:

\e[1;33test

有人可以向我解释这里出了什么问题以及我如何修复它以获得一些(真实的)粗体提示文本吗?

"ANSI" 颜色(转义码)有一个 "bold" 属性,但它通常被解释为 "bright"。您可能需要查看终端应用程序的选项,看看是否可以重新配置它以将粗体解释为粗体而不是明亮。我认为你必须在支持 "bold" 和 "bright colors" 之间做出选择。另见 https://en.wikipedia.org/wiki/ANSI_escape_code#Colors

这有点晚了,但可能会对某人有所帮助, OP的做法是正确的,我相信他遇到的问题与他的字体渲染设置有关。

这里列出了 zsh 和 tcsh 中使用的所有提示变量

http://www.nparikh.org/unix/prompt.php

正如那里所说 %B (%b) = 开始(停止)粗体模式。

阅读此文档,您将知道该怎么做: Customizing the zsh Prompt

有很多选项可以修改 zsh 提示。

对于Bold,你的命令应该是这样的

PROMPT='%B %~ %b %#'

%B -> 开始加粗

%b -> 停止加粗(这样只有提示是加粗的)