如何在Terminal.app中使bash反向搜索工作而又不显示乱码?

时间:2020-03-05 18:45:19  来源:igfitidea点击:

在OS X 10.5上使用Terminal.app,当我们使用Bash进行反向搜索时,通常会看到命令乱码。是否有某种termcap或者bash shopt命令可以解决此问题?这很烦人。

重现步骤:打开Terminal.app,反向搜索冗长的命令。找到命令后,按<ctrl> -E。光标移至该行的末尾,但显示不会更新。

我猜这是OS X上readline库的某种问题。搜索后更新游标位置比其他任何问题都更重要。基本上,ctrl-a和ctrl-e会破坏搜索输出。

os x终端故障图片http://involution.com/images/osxterminal.png

在上面的代码中,应该显示命令的第一部分,并且光标应该在该行的末尾,但不是。发生这种情况时,我们实际上看不到我们正在编辑的内容。

解决方案

回答

我无法重现此内容,请按Ctrl + E,Ctrl + A或者箭头键可以正确更新命令行。我们正在运行10.5.4吗?可能是早期版本中的错误吗?

回答

我遇到了这个错误,虽然我不知道如何解决它,但是我们可以通过按&lt;down> &lt;up>来解决它。

回答

我们可能想看看这篇文章。

bash在OS X终端提示

我有同样的问题,它与PS1变量有关。让我知道是否有帮助。

回答

不确定这是否是问题所在,但是正在重新调整窗口大小是导致bash屏幕混乱(使用任何终端仿真器,而不仅仅是Terminal.app的一个很常见的原因)。

Bash启动时会读取窗口大小,然后假定它没有更改。调整窗口大小后,将向当前正在从控制台读取的任何应用发送信号。如果这不是bash(也许因为我们当时正在运行文本编辑器),则bash不会知道它。

在这种情况下,解决方案是再次调整窗口大小,以便bash获取信号并注意到新的大小。

回答

我能够将TERM设置为xterm而不是xterm-color,它可以解决此问题。 (导出TERM = xterm)。

回答

在最坏的情况下,我们可以启动X服务器(在实用程序下的某个位置)并启动真正的xterm。

回答

如果提示中有颜色,则表明这是一个已确认的错误。
请参阅错误报告msg#00019.