大约50个字符后重置终端线

时间:2015-06-19 13:34:35

标签: terminal

我的命令行提示符将在大约50个字符后重置,包括提示符。例如,如果提示符如下所示:

user@computer$ 

然后我开始输入

user@computer$ blah blah blah blah blah blah

我最终会到达命令行开始重置的程度:

blah blmputer$ blah blah blah blah blah blah

有谁知道为什么会发生这种情况以及如何解决这个问题?最初我认为这是iTerm的一个问题,但我查看了默认的OS X终端并遇到了同样的问题。

编辑:进一步观察我意识到该行总是从窗口末尾重置固定数量的字符,而不是从头开始。

1 个答案:

答案 0 :(得分:0)

通常的原因是由于没有引用用于着色的转义序列或突出显示bash shell中的提示。如果不这样做,bash会将转义字符计为“打印”。这同样适用于zsh(不同的引用),但bash恰好是OSX的默认shell。

根据xterm手册:

  • bash将“[”和“]”中的字符视为非打印字符(在屏幕上不使用宽度)。

  • zsh将“%{”和“%}”中的字符视为非打印字符。

要改变的地方是你的shell对PS1的定义。 Bash Prompt HOWTO 是阅读更多内容的好地方。