修复在Mac OS X上的bash换行和退格显示错误?

当我打开terminal(在Mac OS X 10.5.8),然后input一个长的命令行: 替代文字

…当文字环绕时文本不会进入下一行: 替代文字替代文字

此外,有时当我键入一个命令,然后退格(或向上箭头或^ U): 替代文字

整条线路不会被删除,我不能退后一步: 替代文字替代文字

这是一个已知的bash错误(在Mac OS X上)? 有没有修复?

更新: Juliano是正确的,问题是由我的PS1variables中错误地定界控制台代码序列造成的。 更改:

export PS1='\[\033[1;34m\]\$\]\033[0m\] ' 

…在我的.bashrc中:

 export PS1='\[\033[1;34m\]\$\[\033[0m\] ' 

…解决问题。

这种行为是一致的,在你的提示(改变颜色等),并没有正确标记,然后让bash知道,他们是不可见的控制台代码。

在别的之前,请这样做:

 PS1='\w\$ ' 

然后再试一次。 如果问题解决了,那么我的怀疑是正确的。

每个控制台代码序列必须用PS1variables中的\[\]分隔。 他们告诉bash,无论在哪里都不会移动光标位置。 阅读bash手册了解更多信息。

为了帮助产生一个消毒提示尝试http://www.kirsle.net/wizards/ps1.html这是非常棒的。 在提示中只需要小心括号,它会试图逃避它们。