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

StackOverflow https://stackoverflow.com/questions/35563

  •  09-06-2019
  •  | 
  •  

在 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)。

其他提示

您可能想看看这篇文章。

os-x-终端中的 bash 提示符已损坏

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

如果提示有颜色,那么这是一个已确认的错误。
错误报告 消息#00019.

我遇到了这个错误,虽然我不知道如何解决它,但您可以通过按来解决它 <down><up>

不确定这是否是这里的问题,但 bash(使用任何终端仿真器,而不仅仅是 Terminal.app)中屏幕混乱的一个非常常见的原因是窗口大小被调整。

Bash 将在启动时读取窗口大小,然后假设它没有改变。当调整窗口大小时,信号将被发送到当前正在从控制台读取的任何应用程序。如果这不是 bash(也许因为您当时正在运行文本编辑器),那么 bash 将不知道它。

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

我无法重现这个,也击中 控制键+, 控制键+A 或者箭头键正确更新命令行。你运行的是 10.5.4 吗?这可能是早期版本中的一个错误吗?

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top