1
blue="\033[38;5;32m\]\033[48;5;256m\]"
purple="\033[38;5;198m\]"
green="\[\033[0;32m\]"
reset="\[\033[0m\]"

export PS1="$purple\u$green\$(__git_ps1)$blue \W $ $reset"

如果使用更简单的格式设置颜色,如 for green,一切都会正常工作。但是,如果它们是使用更复杂的格式设置的,比如 in bluepurple它会工作并且一开始看起来是正确的,但是如果我浏览一些以前的命令等,突然该行会跳到一个非常奇怪的地方,提示文本会是走了。

这里发生了什么?

4

1 回答 1

3

\[确保用和包围转义码\]。这些标记告诉 bash 这些是非打印字符。

blue="\[\033[38;5;32m\033[48;5;256m\]"
purple="\[\033[38;5;198m\]"
于 2015-01-06T16:42:28.480 回答