Macos 如何使Mac终端提示和命令加粗?
我希望将提示符(和命令,如果可能的话)设置为粗体 因此,如果我执行所有这些命令:Macos 如何使Mac终端提示和命令加粗?,macos,terminal,Macos,Terminal,我希望将提示符(和命令,如果可能的话)设置为粗体 因此,如果我执行所有这些命令: username$ ls *lists a bunch of things* username$ mkdir testdir username$ ls *lists a bunch of things* 我想要这个 username$ ls username$ mkdir testdir username$ ls 全部以粗体显示,或者至少用户名$以粗体显示。这仅仅是因为当我在终端上滚动时,很难知道什么时候执行了
username$ ls
*lists a bunch of things*
username$ mkdir testdir
username$ ls
*lists a bunch of things*
我想要这个
username$ ls
username$ mkdir testdir
username$ ls
全部以粗体显示,或者至少用户名$
以粗体显示。这仅仅是因为当我在终端上滚动时,很难知道什么时候执行了新命令等等
这可能吗
提前感谢。提示部分(username$
)由PS1
shell变量控制。您可以通过任何init脚本更改该变量,如下所示:
export PS1="\[\e[1m\]$PS1\[\e[0m\]"
其中的1
编码为“粗体”,末尾的0
编码为“复位”。如果您没有在其中设置重置,那么该行的其余部分也会受到影响,但之后的任何文本也会受到影响,这可能不是您要查找的内容
通过使用分号分隔代码,可以添加更多样式和颜色,如下所示:
export PS1="\[\e[1;5;31m\]$PS1\[\e[0m\]"
基本代码可以用简单的一行代码枚举:
for x in $(seq 0 255); do printf "\x1b[${x}m${x}\x1b[0m\n"; done
有关详细信息,请参阅
但是,其中的
\[
和\]
不是ANSI代码的一部分,而是特定于PS1
:它们告诉bash中间的字符是非打印字符,这非常重要,例如,计算换行。请参阅。注意:如果您对提示符进行了类似的操作,然后发现在使用命令历史记录或长命令换行时出现奇怪的重画故障,那么您需要再次检查提示符的所有非打印部分是否都有\[\]
。把这些弄错是一个很常见的错误,但如果你把这些弄错了,一切都会好起来。