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提示符的"输入文本"颜色更改为终端默认颜色以外的其他颜色?谢谢你的任何建议!
只需添加以下行:
export PS1=" \[\033[34m\]\u@\h \[\033[33m\]\w\[\033[31m\]\[\033[00m\] $ "
Run Code Online (Sandbox Code Playgroud)
这是我的首选颜色。您可以通过更改ANSI颜色代码m(例如34m)来自定义提示颜色的每个部分。
ANSI颜色代码列表:
我建议更改终端模拟器的设置。
\n看来您正在使用iTerm2(如果您使用 iTerm,我建议查看 iTerm2),因此:
\n设置\xe2\x86\x92配置文件\xe2\x86\x92您的配置文件\xe2\x86\x92颜色。在“基本颜色”下,调整“前景”。
\n为了仅更改输入文本的颜色,在 Z shell ( zsh) 中,您可以使用
preexec () { echo -ne "\\e[0m" }\nRun Code Online (Sandbox Code Playgroud)\n\n我找到了一种用 Bash 尝试的黑客方式:
\n\n\n本身不是,但可以使用 DEBUG 陷阱对其进行破解。这段代码设置了 preexec,
\nprecmd其功能与 zsh 类似。命令行作为单个参数传递给 preexec。下面是代码的简化版本,用于设置在运行每个命令之前执行的 precmd 函数。
\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}\nRun Code Online (Sandbox Code Playgroud)\n\n\n\ntrap \'preexec_invoke_exec\' DEBUG
\n
\n这个技巧是由于Glyph Lefkowitz造成的;感谢[bcat]找到原作者。http://www.macosxhints.com/dlfiles/preexec.bash.txt
\n
| 归档时间: |
|
| 查看次数: |
6961 次 |
| 最近记录: |