使用屏幕后,像less和man这样的命令不会清除屏幕

Bol*_*wyn 15 gnu-screen

此问题相反,我希望为less. 它xterm在 Cygwin/mintty 或 Gnome 终端(两者xterm)下的我的终端中运行良好。

但是,在screen会话内部时,屏幕的清除以某种方式被禁用。我尝试了几件事,比如

screen -T xterm
Run Code Online (Sandbox Code Playgroud)

或将autonuke语句放入我的~/.screenrc. 此外,在屏幕会话内

export TERM=xterm
tset
Run Code Online (Sandbox Code Playgroud)

没有效果。所以,现在我没有想法了。任何帮助表示赞赏。

Chr*_*sen 21

您可能希望screen -T屏幕会话中避免或将 TERM 重置为远离其默认值(它可能screen或至少应该以 开头screen)。

尝试将以下行放入您的.screenrc

altscreen on
Run Code Online (Sandbox Code Playgroud)

要在每个会话的基础上激活它,您可以在 上执行Control+ a:altscreen Return

我的联机帮助页说:

altscreen 开|关

如果设置为 on,则在虚拟终端中启用“交替屏幕”支持,就像在 xterm 中一样。初始设置为“关闭”。

顺便说一句,我已经在另一个答案中解释了“屏幕清除”(实际上是交替/正常屏幕交换)根本原因。您的screenterminfo 条目可能丢失smcup/rmcup或您的屏幕不支持备用屏幕。这两者似乎都不太可能altscreen关闭。

  • @Dana:什么版本的 *screen* (`screen --version`)?似乎从 *screen* 3.9.13 开始就有 `altscreen`。基于[opensource.apple.com](http://www.opensource.apple.com/),似乎*screen* 的Apple 捆绑版本自10.3 以来比3.9.13 更新。提醒一下,它不是常规的“shell 命令”,而是特定于 *screen* 的命令;它必须在 *screen* “冒号提示”下输入(Control+a,然后是 `:altscreen on`,然后是 Return)。 (2认同)