xterm 调整大小会导致 shell 混乱

xterm 调整大小会导致 shell 混乱

我正在使用反射 x,它使用 xterm 作为终端模拟器。如果我多次最大化和最小化窗口,当我尝试访问以前的命令时,文本会变得混乱。这个问题非常类似于但是,我使用的是 ksh shell 而不是 bash。那么 ksh 版本的解决方案是什么?谢谢!

答案1

我通常需要使用resizereset命令来清除/修复调整实际 xterm 窗口大小时出现的问题。

使用方法resize

$ eval `resize`

如果您resize单独运行,它将报告列和行的设置。

使用方法reset

$ reset

参考

答案2

reset命令不会帮助清理调整大小。

resize命令可能会有所帮助,但有一个陷阱。有两个主要用例resize

  • 当系统无法判断时,告诉系统屏幕有多大,例如,通过不支持 NAWS(关于窗口大小的协商)的串行接口进行连接。这对于常见问题解答很有用。
  • 修复以前使用时不必要设置的环境变量resize。这个生成错误报告。

resize程序最初是在基于 termcap 的系统很常见时编写的。典型的 termcap 描述会告诉您屏幕有多大,因为大多数 20 世纪 80 年代编写的 termcap 应用程序不包含询问屏幕实际大小的系统调用。随着SIGWINCH信号和系统调用的引入以获取信息,这种情况在 20 世纪 80 年代末开始发生变化。

然而,由于这些遗留应用程序,建立了一个约定,即(默认情况下)如果设置了LINES和/或COLUMNS变量,那么它们将覆盖 termcap 描述。

到目前为止,一切都很好。

然而,某些应用程序(包括 bash 等 shell,本质上是 termcap 应用程序)会比实际屏幕尺寸更关注这些LINES和变量。COLUMNS

如果你评价的输出resize,您将设置这些变量。这看起来很好,直到(您可能会注意到)再次调整窗口大小时,跟随屏幕大小更改的程序不再这样做。

没问题,您只需重复您对 所做的操作即可resize

另一方面,如果你只是运行resize 没有通过评估其输出,它会更新系统的屏幕尺寸概念。

进一步阅读:

相关内容