我正在使用反射 x,它使用 xterm 作为终端模拟器。如果我多次最大化和最小化窗口,当我尝试访问以前的命令时,文本会变得混乱。这个问题非常类似于这但是,我使用的是 ksh shell 而不是 bash。那么 ksh 版本的解决方案是什么?谢谢!
答案1
答案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
没有通过评估其输出,它会更新系统的屏幕尺寸概念。
进一步阅读:
resize
-将环境和终端设置设置为当前 xterm 窗口大小tset
,reset
-终端初始化- use_env,一个允许忽略
LINES
和 的库函数。COLUMNS
- 处理 SIGWINCH(调整大小事件)