nou*_*oir 3 zsh prompt zshrc oh-my-zsh
我正在自定义我的 zsh 终端,但是在将我的提示变为粗体时遇到了困难。我尝试了几种不同的方法,但都没有奏效,而它确实适用于互联网上的人们......
所以这是我的测试提示。两个“HEY”都是颜色 1,但第二个“HEY”应该是粗体。显然不是,取而代之的是,我得到了一些华丽的红色,就像我提示的第一部分一样,颜色为 9。wtf :)
这是我在这种情况下使用的代码:
HEY%BHEY%b
Run Code Online (Sandbox Code Playgroud)
我还注意到它对前 8 种颜色中的每一种都做同样的事情:黑色变成灰色,灰色变成白色,夜蓝色变成深蓝色,叶绿色变成亮绿色,粉红色、黄色也一样......
我还尝试对模数使用一些转义序列,但都没有奏效:每次,模数都将其旁边的字符作为参数,其余代码将像普通字符一样显示。例如,这个:
PS1="%{\e[1;33%}test"
Run Code Online (Sandbox Code Playgroud)
会显示这个:
\e[1;33test
Run Code Online (Sandbox Code Playgroud)
有人可以解释我这里出了什么问题,以及我如何修复它以获得一些(真实的)粗体提示文本?
小智 8
这很晚了,但可能会帮助某人,OP 的做法是正确的,我相信他遇到的问题与他的字体渲染设置有关。
这是 zsh 和 tcsh 中使用的所有提示变量的列表
http://www.nparikh.org/unix/prompt.php
正如它所说的那样 %B (%b) = 开始(停止)粗体模式。
阅读此文档,您将知道该怎么做: 自定义 zsh 提示符
有很多选项可以修改 zsh 提示符。
对于粗体,你的命令应该是这样的
PROMPT='%B %~ %b %# '
%B -> 开始粗体
%b -> 停止粗体(这样只有提示是粗体)
“ANSI”颜色(转义码)具有“粗体”属性,但它通常被解释为“明亮”。您可能需要查看终端应用程序的选项,看看是否可以将其重新配置为将粗体解释为粗体而不是明亮。我认为你必须在支持“大胆”和“鲜艳的颜色”之间做出选择。另请参阅https://en.wikipedia.org/wiki/ANSI_escape_code#Colors