为什么 xterm/bash 会自动换行,即使窗口很大,无法容纳命令

为什么 xterm/bash 会自动换行,即使窗口很大,无法容纳命令

所以这种情况有时会发生,但并非总是如此。我将编写一个非常长的命令,并且我会对它在边缘处环绕感到满意,如下所示:

在此输入图像描述

然而,我不喜欢发生的是,在增加窗口大小后,如果我编写一个新的长命令或在命令历史记录中返回到之前的长命令,它将以破坏可读性的方式进行自动换行,像这样:

http://youtu.be/XnbmdqWzxyU

ArchLinux Linux 内核:3.17.6-1 xterm 版本:314-1 bash 版本:4.3.030-1

答案1

这很可能是一个阅读线事物。添加

set horizontal-scroll-mode on

到你的 readline 配置(通常~/.inputrc)并重新启动 shell 或重新读取配置(通常使用Ctrl+ X Ctrl+ R)。

如果没有,那么我担心你运气不好 - 终端通常就是这样做的,即一旦数据变得太大,如果换行并显示在新行上。

答案2

当我在运行使用全屏程序时调整大小时,这种情况最常发生在我身上备用屏幕,例如vimless。如果运行程序时回滚缓冲区似乎消失,然后退出时又重新出现,您可以判断是否属于这种情况。

在运行此类程序时调整大小时,备用屏幕会使用新的终端尺寸进行更新,但底层主屏幕不会更新。当您退出程序并返回到主屏幕上的命令提示符时,终端对其宽度的理解与 xterm 的不同。如果 xterm 变宽,这一点最为明显,但如果变窄,也会导致微妙的问题。

话虽如此,我无法在 Ubuntu 12.04 系统上使用 xterm-271 复制此操作。然而,我总是看到它使用 mintty 和 Cygwin,并且我怀疑修复是相同的。只需更改终端的宽度,即使只是一个字符。这样做可靠地解决了我的问题。

答案3

原因可能是设置了边距。如果某些curses 应用程序未正确终止,则可能会发生这种情况。在这种情况下,键入reset将重置终端,特别是边距。

相关内容