我的zsh提示符不加粗。

7

我正在定制我的zsh终端,但当我想将提示符变成粗体时遇到了困难。我尝试了几种不同的方法,但都没有成功,而在互联网上对其他人却有效...

这是我的测试提示。两个“HEY”都是颜色1,但第二个“HEY”应该是粗体。显然不是这样的,相反,我得到了一些闪闪发光的红色,就像我的提示的第一部分一样,它是颜色9。什么鬼 :)
以下是我在此情况下使用的代码:
HEY%BHEY%b

我还注意到它对前8种颜色都做了相同的事情:黑色变成灰色,灰色变成白色,夜蓝变成深蓝,叶绿变成亮绿,粉红也是如此,黄色也是如此...
我还尝试使用一些转义序列和取模运算符,但都没有成功:每次,取模运算符都会将其旁边的字符作为参数,并且代码的其余部分将像普通字符一样显示。
例如,这个:
PS1="%{\e[1;33%}test"

将显示这个:

\e[1;33test

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

3个回答

8

阅读本文档,您将了解该怎么做: 自定义zsh提示符

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

如果要加粗显示,您的命令应该像这样:

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

%B -> 开始加粗

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


7
这可能有所帮助,虽然时间有点晚。我相信OP的做法是正确的,他遇到的问题可能与字体渲染设置有关。
以下是zsh和tcsh中使用的所有提示变量列表。

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

作为它所述的那样 %B (%b) = 开始(停止)加粗模式。

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接