当我打开终端(在 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 手册以获取更多信息。