查看历史记录时提示提示越野车

问题描述 投票:0回答:2

我已经自定义了我的PS1 bash变量,但是当我回顾历史时,它开始出现问题并做了奇怪的事情。我经过了几次,但似乎找不到任何错误。

\[\e]0;\u@\h: \w\a\]\[\033[01;32m\]\u@\h\[\033[00m\]\[\e[31m\] (production)\[\e[0m:\]\[\033[01;34m\]\w\[\e[m\]$

[回顾历史,开始表现出怪异的时刻,似乎与需要换行的长行有关...

bash prompt ps1
2个回答
0
投票

问题出在\[\e[0m:\]中。冒号:是打印字符,因此应位于非打印定界符之外,即\[\e[0m\]:

将来,如果您的PS1遇到问题,请尝试将其分解成小块并对其进行测试。


0
投票

Bash需要知道您的提示能正确包装多长时间。

您没有正确告知它应该有多长时间的提示。

不是打印字符的任何内容都应包裹在\[ \]中,以使bash知道它不应考虑那些用于确定行长的字符。

您在几个地方有您要打印的东西are,它们被错误地包裹在\[ \]中,例如

\[\e]0;\u@\h: \w\a\]
\[\e[0m:\]
© www.soinside.com 2019 - 2024. All rights reserved.