终端问题 OS X 10.6.4

jon*_*mps 2 terminal.app macos

我通常有很长的终端命令,每当我尝试使用命令历史记录(通过按向上箭头)时,文本格式都会变得乱码,并且光标出现在错误的位置。此时编辑命令变得不可能,并且光标的实际位置没有正确显示在屏幕上。

如果我调整终端窗口的大小以允许整个命令适合一行,则格式会得到纠正,但有时我没有足够的屏幕空间来完成此操作。有任何想法吗?

Gor*_*son 6

您是否自定义了 shell 提示(例如着色或类似的东西)?发生这种情况的通常原因是您的提示中有非打印字符(例如颜色更改序列),并且它们使 shell 混淆了提示的宽度以及如何包装命令行。

假设您使用 bash 作为 shell,正确的解决方案是将非打印序列包装起来\[...\],让 shell 知道它们是非打印的。例如,如果您希望提示为蓝色(\e[0;34m将其变为蓝色,\e[m恢复正常),您可以使用:

PS1='\[\e[0;34m\]your prompt text here\[\e[m\]'
Run Code Online (Sandbox Code Playgroud)