我通常有很长的终端命令,每当我尝试使用命令历史记录(按向上箭头)时,文本格式都会变得乱七八糟,光标会出现在错误的位置。此时编辑命令变得不可能,并且光标的实际位置无法正确显示在屏幕上。
如果我调整终端窗口的大小,使整个命令可以放在一行中,那么格式就会得到纠正,但有时我没有足够的屏幕空间来实现这一点。有什么想法吗?
答案1
您是否自定义过 shell 提示符 (例如颜色设置或类似的东西)?发生这种情况的常见原因是您的提示符中有非打印字符 (例如颜色变化序列),它们使 shell 无法分辨提示符的宽度,因此无法判断命令行的换行方式。
假设您使用 bash 作为 shell,正确的解决方案是将非打印序列包装起来,\[...\]
让 shell 知道它们是非打印的。例如,如果您希望提示符为蓝色(\e[0;34m
将其变为蓝色,\e[m
恢复正常),您可以使用:
PS1='\[\e[0;34m\]your prompt text here\[\e[m\]'
答案2
这是否发生在您的本地计算机上?我的意思是,您还没有通过 SSH 连接到另一台计算机?如果这是本地计算机,请尝试退出 Terminal.app,删除 .plist 文件,然后重新打开 Terminal.app。