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

Dar*_*zer 17 bash mac-osx

当我打开终端(在 Mac OS X 10.5.8 上)并输入一个长命令行时: 替代文字

...文本在环绕时不会转到下一行: 替代文字 替代文字

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

...整行没有被删除,我不能退格超过某个点: 替代文字 替代文字

这是一个已知的 bash 错误(在 Mac OS X 上)吗?有解决办法吗?

更新: Juliano是正确的,问题是由于在我的 PS1 变量中错误地分隔控制台代码序列引起的。改变:

export PS1='\[\033[1;34m\]\$\]\033[0m\] '
Run Code Online (Sandbox Code Playgroud)

...在我.bashrc的:

export PS1='\[\033[1;34m\]\$\[\033[0m\] '
Run Code Online (Sandbox Code Playgroud)

...解决了问题。

Jul*_*ano 21

该行为与在您的提示中包含控制台代码(更改颜色等)并没有正确标记是一致的,以便 bash 知道它们是不可见的。

在做任何其他事情之前,请执行以下操作:

PS1='\w\$ '
Run Code Online (Sandbox Code Playgroud)

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

每个控制台代码序列必须用PS1 变量分隔\[\]在其中。他们告诉 bash 里面的任何东西都不会移动光标位置。阅读 bash 手册以获取更多信息。