Mac 终端/iTerm 历史光标问题

car*_*tor 13 bash iterm osx-snow-leopard terminal.app readline

很多时候,我在 Terminal.app 或 iTerm 中运行一个命令,按向上箭头返回编辑它,光标跳到上面的行或完全错误的地方。当命令太长以至于它绕到下一行时,尤其会发生这种情况。有时这些长命令都出现在一行上,有时它们在多行中正确显示。

这发生在 iTerm 和 Terminal.app 中

在 vi 和 emacs 模式下也会发生,使它们几乎无法使用。

有任何想法吗?谢谢!

Den*_*son 21

这很可能是因为您的提示定义包含不应计入提示长度的序列,例如用于设置颜色的序列。这些序列应该介于\[和之间,\]以防止计算它们的长度。这是一个产生全红色提示的示例:

PS1='\[\033[31m\]\u@\h:\w\$\[\033[0m\]'
Run Code Online (Sandbox Code Playgroud)