我在 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
,__git_status
启用该设置后,箭头的颜色会发生变化,因为它是粗体的。
答案1
简而言之:不,PS1 使用与“其他所有内容”相同的转义序列
长的:
您可以关闭箭头中的粗体:
declare __arrow='\[\e[22m\]▸ \[\e[0m\]';
实际上,由于__dir
将其关闭,这是多余的(除非$(git_status)
有一些转义序列)。
这22
关掉大胆的不影响其他视频属性,并且定义在ECMA-48(以及其他地方,例如XTerm 控制序列):
Ps = 2 2 -> Normal (neither bold nor faint).