我输入的文本是否可以与终端响应的文本使用不同的颜色?我已使用终端的“首选项”>“未命名”>“颜色”功能调整了文本颜色,但找不到任何方法为我的输入和终端的输入设置不同的颜色。谢谢。
答案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[0m
DEBUG 信号,使得每次执行命令时都会执行它。
我意识到这不是很清楚,但这就是你最终想要的结果:
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
这应该会出现这样的情况:您输入的内容以粗体显示,但终端返回的内容却不是: