终端窗口中的文本颜色

终端窗口中的文本颜色

我输入的文本是否可以与终端响应的文本使用不同的颜色?我已使用终端的“首选项”>“未命名”>“颜色”功能调整了文本颜色,但找不到任何方法为我的输入和终端的输入设置不同的颜色。谢谢。

答案1

是的,这是可能的。您需要更改变量的值PS1,该变量设置了您的提示符(通常类似于user@ubuntu /home/ $)。编辑~/.bashrc并找到此部分:

if [ "$color_prompt" = yes ]; then
    PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
else
    PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
fi

接下来,你需要决定你想要什么颜色。我将在这个例子中使用粗体,参见这里了解更多选项。因此,粗体的转义码是\e[01m,我们需要将其添加到变量的末尾PS1,以便打印所有内容提示(即您输入的任何内容)都将以粗体显示。

然后,我们需要在打印响应之前以某种方式再次将其关闭,我们可以通过“捕获”“重置颜色”命令来实现这一点,该命令是\e[0mDEBUG 信号,使得每次执行命令时都会执行它。

我意识到这不是很清楚,但这就是你最终想要的结果:

if [ "$color_prompt" = yes ]; then
    PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ \e[01m'
else
    PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
fi

trap 'printf "\e[0m" "$_"' DEBUG

这应该会出现这样的情况:您输入的内容以粗体显示,但终端返回的内容却不是:

显示粗体和非粗体文本的屏幕截图

相关内容