在 konsole 中更改 bash 中的提示颜色

在 konsole 中更改 bash 中的提示颜色

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 mCSIESC [$'\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'

或者,使用尊重应用程序指定的颜色的颜色主题,而不是完全搞乱它们。

相关内容