在几个 Unix 服务器上,我看到了以下行为:
- 我使用以下方式列出所有文件
ls -lrt
: 3 个文件正在显示 - 我使用 vi 编辑器打开其中一个文件
- 我关闭打开的文件
现在在某些 Unix 系统中,我仍然可以看到早期的屏幕,就像第 2 点一样(列出这 3 个文件,ls -lrt
按原样输出),而在某些系统上,会打印最近打开的文件的文本。
我想知道*rc
此行为取决于配置文件或某些文件中的哪个设置。
答案1
这听起来像是xterm 备用屏幕功能(在大多数与 xterm 有相似之处的终端仿真器中实现,包括 rxvt)。
xterm 将其输出窗口分为三个部分:
- 这普通的屏幕和窗户一样大,
- 这回滚,当窗口变满时将行复制到其中,以及
- 这备用screen,当显示“全屏”程序时,xterm 可以切换到该屏幕或从该屏幕切换。
切换是使用转义序列完成的。按照惯例,那可能是终端描述的初始化(和结束)功能的一部分: termcapti
和te
/或 terminfosmcup
和rmcup
。这是一种约定(termcap 和 terminfo 都没有针对此功能的特殊功能),并且由于有些用户需要,而其他用户则不需要,因此终端描述有所不同。
进一步阅读:
- 为什么运行 vi 时屏幕不清除?(xterm 常见问题解答)
- 图书馆用户类型(ncurses 常见问题解答)
各种建议(无论哪种方式都不是很好):