如何使 bash 反向搜索在 Terminal.app 中工作而不显示乱码输出?
题
在 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
在上面,应该显示命令的第一部分,并且光标应该位于行尾,但事实并非如此。发生这种情况时,您实际上无法看到正在编辑的内容。
解决方案
我能够将我的 TERM 设置为 xterm 而不是 xterm-color ,它解决了问题。(导出 TERM=xterm)。
其他提示
如果提示有颜色,那么这是一个已确认的错误。
看 错误报告 消息#00019.
我遇到了这个错误,虽然我不知道如何解决它,但您可以通过按来解决它 <down><up>
不确定这是否是这里的问题,但 bash(使用任何终端仿真器,而不仅仅是 Terminal.app)中屏幕混乱的一个非常常见的原因是窗口大小被调整。
Bash 将在启动时读取窗口大小,然后假设它没有改变。当调整窗口大小时,信号将被发送到当前正在从控制台读取的任何应用程序。如果这不是 bash(也许因为您当时正在运行文本编辑器),那么 bash 将不知道它。
这种情况下的解决方案是再次调整窗口大小,以便 bash 获取信号并注意到新的大小。
我无法重现这个,也击中 控制键+乙, 控制键+A 或者箭头键正确更新命令行。你运行的是 10.5.4 吗?这可能是早期版本中的一个错误吗?
在最坏的情况下,您可以启动 X 服务器(在实用程序下的某个位置)并启动真正的 xterm。