如何更改 iTerm2 中默认标题的颜色

如何更改 iTerm2 中默认标题的颜色

每次执行命令时,我都很难找到上一条命令的结果的起点。所以我想让默认行“Arthur-Mac-mini...”改变颜色,我该怎么做?

在此处输入图片描述

谢谢!

答案1

如何更改 iTerm2 中默认标题的颜色

您可以通过修改PROMPT_COMMAND变量来实现这一点。

这个变量的内容并不像 那样只是一个字符串PS1。它实际上是在 bash 显示提示符之前执行的命令。


如何自定义命令提示符

定制PROMPT_COMMAND

更好的方法是使用变量PROMPT_COMMAND;这个变量的内容不仅仅是一个字符串,就像 一样PS1。它实际上是在 bash 显示提示之前执行的命令。为了尝试一下,让我们将其添加到我们的.bashrc

PROMPT_COMMAND='echo "comes before the prompt"'

我们在这里使用echo命令;如果您不熟悉它,只需向其传递一个字符串,它就会将其写入终端。它本身并不是非常有用(尽管您可以使用它来查看变量:)echo $PS1,但与其他命令一起使用时效果很好,因此请显示它们的输出。

让我们在这里做一些更有用的事情。让我们编写一个将分配给的 bash 函数PROMPT_COMMAND。试试这个:

print_before_the_prompt () {
    echo "comes before the prompt"
}

PROMPT_COMMAND=print_before_the_prompt

如果您使用此功能,您应该不会看到提示与我们上面的提示有什么不同。现在,让我们让它变得有用。

print_before_the_prompt () {
  echo "$USER: $PWD"
}

PROMPT_COMMAND=print_before_the_prompt

PS1='->'

print_before_the_prompt后来被修改以给提示添加颜色。

...

添加一些颜色

看起来不错!但让我们更进一步。让我们给它添加一些颜色。我们可以使用一些特殊代码来更改终端中文本的颜色。使用实际代码可能相当令人生畏,所以我喜欢复制此颜色变量列表并将其添加到我的 .bashrc 文件的顶部:

txtblk='\e[0;30m' # Black - Regular
txtred='\e[0;31m' # Red
txtgrn='\e[0;32m' # Green
txtylw='\e[0;33m' # Yellow
txtblu='\e[0;34m' # Blue
txtpur='\e[0;35m' # Purple
txtcyn='\e[0;36m' # Cyan
txtwht='\e[0;37m' # White

bldblk='\e[1;30m' # Black - Bold
bldred='\e[1;31m' # Red
bldgrn='\e[1;32m' # Green
bldylw='\e[1;33m' # Yellow
bldblu='\e[1;34m' # Blue
bldpur='\e[1;35m' # Purple
bldcyn='\e[1;36m' # Cyan
bldwht='\e[1;37m' # White

unkblk='\e[4;30m' # Black - Underline
undred='\e[4;31m' # Red
undgrn='\e[4;32m' # Green
undylw='\e[4;33m' # Yellow
undblu='\e[4;34m' # Blue
undpur='\e[4;35m' # Purple
undcyn='\e[4;36m' # Cyan
undwht='\e[4;37m' # White

bakblk='\e[40m'   # Black - Background
bakred='\e[41m'   # Red
badgrn='\e[42m'   # Green
bakylw='\e[43m'   # Yellow
bakblu='\e[44m'   # Blue
bakpur='\e[45m'   # Purple
bakcyn='\e[46m'   # Cyan
bakwht='\e[47m'   # White

txtrst='\e[0m'    # Text Reset

这种疯狂的做法是有一定道理的:第一组启用正常着色。第二组启用粗体着色。第三组启用下划线着色。第四组启用背景着色。最后一组将着色重置为正常。所以,让我们使用这些吧!

print_before_the_prompt () {
    printf "\n $txtred%s: $bldgrn%s \n$txtrst" "$USER" "$PWD"
}

$txtred在这里,我在第一个%s$bldgrn第二个之前添加了%s;然后,在最后,我重置了文本颜色。您必须这样做,因为一旦您设置了颜色,它将一直保持,直到您使用新颜色或重置颜色。您还会注意到,在设置变量时,我们不会在它前面加上美元符号;但在使用变量时我们会使用美元符号:这就是 bash 变量的工作方式。这给了我们以下内容:

在此处输入图片描述

来源如何自定义命令提示符

相关内容