我可以将bash提示符的输入颜色更改为与终端默认值不同的输入颜色

dyl*_*zed 10 unix linux bash dotfiles

我的默认终端颜色是灰色,没关系.

我的bash提示显示了一堆颜色,这很好用:

PS1="${COLOR_RED}\u${COLOR_WHITE}@${COLOR_RED}${COMPUTERNAME} ${COLOR_BLUE}\w${GITPROMPT} ${COLOR_RESET}"
Run Code Online (Sandbox Code Playgroud)

参见示例:http://cl.ly/image/002f210X1f1u

但是我在输入结束时输入的文字是灰色的.我希望它是白色的(ANSI代码"[37m").

如果我在提示的末尾添加COLOR_WHITE而不是COLOR_RESET,则默认的终端颜色会变为白色,直到重置为止.这会产生一些灰色文本的奇怪效果,顶部会出现一些白色文字.

请参阅问题示例:http://cl.ly/image/1Z3g3v0e083B

如何将Bash提示符的"输入文本"颜色更改为终端默认颜色以外的其他颜色?谢谢你的任何建议!

Sha*_*ani 7

只需添加以下行:

export PS1=" \[\033[34m\]\u@\h \[\033[33m\]\w\[\033[31m\]\[\033[00m\] $ "
Run Code Online (Sandbox Code Playgroud)

预习: 在此处输入图片说明

这是我的首选颜色。您可以通过更改ANSI颜色代码m(例如34m)来自定义提示颜色的每个部分。

ANSI颜色代码列表:

  • 黑色:30米
  • 红色:31米
  • 绿色:32米
  • 黄:33米
  • 蓝色:34米
  • 紫色:35米
  • 青色:36m
  • 白:37米


dem*_*ure 0

我建议更改终端模拟器的设置。

\n

看来您正在使用iTerm2(如果您使用 iTerm,我建议查看 iTerm2),因此:

\n

设置\xe2\x86\x92配置文件\xe2\x86\x92您的配置文件\xe2\x86\x92颜色。在“基本颜色”下,调整“前景”。

\n

为了仅更改输入文本的颜色,在 Z shell ( zsh) 中,您可以使用

\n
preexec () { echo -ne "\\e[0m" }\n
Run Code Online (Sandbox Code Playgroud)\n

来源1

\n

我找到了一种用 Bash 尝试的黑客方式:

\n
\n

本身不是,但可以使用 DEBUG 陷阱对其进行破解。这段代码设置了 preexec,precmd其功能与 zsh 类似。命令行作为单个参数传递给 preexec。

\n

下面是代码的简化版本,用于设置在运行每个命令之前执行的 precmd 函数。

\n
\n
preexec () { :; }\npreexec_invoke_exec () {\n    [ -n "$COMP_LINE" ] && return  # do nothing if completing\n    local this_command=$(history 1 | sed -e "s/^[ ]*[0-9]*[ ]*//g");\n    preexec "$this_command"\n}\n
Run Code Online (Sandbox Code Playgroud)\n
\n

trap \'preexec_invoke_exec\' DEBUG
\n这个技巧是由于Glyph Lefkowitz造成的;感谢[bcat]找到原作者。

\n

http://www.macosxhints.com/dlfiles/preexec.bash.txt

\n
\n

来源2

\n