我在 Mac 上使用 iTerm2。有一个设置称为Draw bold text in bright colors
;此设置的问题是它也会影响我的PS1
文本。有什么办法可以做到PS1
吗?
如果这很重要,这就是我的样子:
declare __host='\[\e[30;102m\] \h \[\e[0m\]';
declare __dir='\[\e[1;97;44m\] \w \[\e[22m\]';
declare __arrow='\[\e[1m\]▸ \[\e[0m\]';
function __git_status() {
local info;
info=$(__git_info) && printf '\1\e[30;43m\2%s' "$info";
}
PS1="$__host$__dir"'$(__git_status)'"$__arrow ";
__arrow
颜色来自__dir
or__git_status
并且启用该设置后,箭头的颜色会更改,因为它是粗体。
简而言之:不,PS1 使用与“其他所有内容”相同的转义序列
长:
您可以关闭箭头中的粗体:
实际上因为
__dir
关闭它,这是多余的(除非$(git_status)
有一些转义序列)。22
关闭粗体而不影响其他视频属性,并在 ECMA-48 中定义(以及XTerm Control Sequences等其他地方):