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中间的字符是非打印字符,这非常重要,例如,计算换行。请参阅。

注意:如果您对提示符进行了类似的操作,然后发现在使用命令历史记录或长命令换行时出现奇怪的重画故障,那么您需要再次检查提示符的所有非打印部分是否都有
\[\]
。把这些弄错是一个很常见的错误,但如果你把这些弄错了,一切都会好起来。