PS1
我通过更改my 中的变量来更改控制台中提示的颜色,.bashrc
如下所示:
PS1="${debian_chroot:+($debian_chroot)}$COLOR_USER\u@$COLOR_HOST\h:$COLOR_PWD\w>$COLOR_ORDER"
COLOR_
……是变量。
但它会被控制台配色方案覆盖。如何阻止控制台覆盖我的.bashrc
设置?
答案1
在终端中运行的应用程序,例如 shell,发送转义序列到终端以更改后续输出的外观。更改字符属性的转义序列是where代表两个字符序列(可以在 bash 中写为)和CSI Pm m
CSI
ESC [
$'\e['
下午是一个决定要改变什么的序列。
大概您的配置使用 8 种标准颜色,即$COLOR_USER
类似于$'\e[31m'
获取红色文本。标准颜色的外观可由终端自由选择。如果您在 Konsole 中使用主题,它可能会根据需要调整颜色。好的主题只会选择合适的色调,但某些 Konsole 主题会完全改变它们。
您可以使用转义序列,通过其红-绿-蓝分量指定颜色:(其中CSI 3 8 ; 2 ; Pr ; Pg ; Pb m
普罗,PG和铅分别是红-绿-蓝分量,范围为 0 到 255)。 Konsole 会尊重这一点。例如,要获取红色的用户名:
COLOR_USER=$'\e[38;2;128;0;0m'
或者,使用尊重应用程序指定的颜色的颜色主题,而不是完全搞乱它们。