调整大小后终端行为异常(没有新行)

调整大小后终端行为异常(没有新行)

在装有 Gnome 3.18 的 Arch Linux 上,我遇到了终端行为异常的问题,当我调整终端窗口大小并输入一些命令(例如lsmpv),然后通过使用鼠标光标拖动窗口边框再次调整大小时。

当我按下以返回历史记录时,如果行很长,则不会创建新行(或换行符),但会从左到右覆盖同一行。当我按住键盘时,提示符会移动到顶部并“吞噬”上面的终端输出。我尝试过,可以在 gnome-terminal、lxterminal 和 xterm 中看到类似的行为,所有这些都是从 gnome 会话启动的。

以下截屏演示了这种奇怪的行为:https://vimeo.com/147162618

这可能是什么?我可以在哪里查找这种行为的原因?

答案1

bash通常这是由于处理窗口调整大小事件的方式存在问题:它捕获SIGWINCH,以便它知道如何更新其用于编辑命令行的屏幕宽度概念。

要查看的位置是checkwinsize选项:

checkwinsize

如果设置,Bash 会在执行每个命令后检查窗口大小,并在必要时更新LINESCOLUMNS

整个功能都存在问题:

但一般来说,如果尚未设置,则给出的建议是设置该选项:

shopt -s checkwinsize

进一步阅读:

相关内容