当我tput sgr0
这样做时,它将我的终端字体和颜色更改为白色(应该是黑色)并且看起来是块状的。
请看截图:
我该如何阻止这个?
为了更简洁,任何echo
之后tput sgr 0
似乎都输出为粗体白色,我的终端文本颜色是黑色。
更新:
我的~.bashrc
:
export LC_ALL="en_GB.UTF-8"
export BASH_SILENCE_DEPRECATION_WARNING=1
branch() {
git branch 2> /dev/null | \
grep \* | \
awk '{print$2}' | \
sed '
s#^#(#g;
s#$#)#g
'
}
colo() { tput setaf $1; }
PS1='`tput bold``colo 5`\W: `tput sgr0``colo 0``branch``colo 0` \n λ '
该
sgr0
代码被描述为man terminfo
“关闭所有属性”。该
sgr
代码被描述为“定义视频属性#1-#9 (PG9) ”并取值1
..9
;序列sgr 0
未定义。您在问题中同时使用了sgr0
和。sgr 0
答案的其余部分假设
sgr0
,因为其他序列无效。如果使用将
tput sgr0
您的终端重置为黑色和白色,那么这些颜色是默认(重置)模式的一部分。因此,我假设您不是将终端应用程序配置为使用您喜欢的颜色方案作为默认颜色,而是将指令放入 shell 初始化文件之一中以设置特定的前景色和背景色。这些(正确地)被sgr0
代码重置。我想到了两种可能的解决方案,