15

这是一个奇怪的问题,我无法通过 Google 找到一个好的答案(当然,我总是有可能失败)。在我的 bash 提示符上,如果我为提示的一部分着色,当我点击“向上”转到上一个命令时,在超过一定数量的字符(特别是 31)后,我无法转到行首.

我当前的 bash 提示是这样的:(颜色在我的 .bashrc 前面定义)

PS1="[\u@$cyan\h$NC \w] "

但是,如果我将其更改为:

PS1="[\u@\h \w] "

它不再阻止我走到行首。

奇怪的部分是,在视觉上,当我回家去到行首(或使用箭头键)时,它会在字符串中停止 11 个字符,但如果我从那里编辑它,它会从头开始编辑的线。

有谁知道为什么会发生这种情况?当我进行服务器管理时,我想在提示符中使用颜色,而颜色是我一目了然区分我的盒子的方式。

4

1 回答 1

27

非打印序列(如颜色代码)必须被包围\[\]因此它们的长度不计入提示长度的一部分。

于 2012-05-15T06:02:38.287 回答