在 GNU 屏幕中分离后清除 (1)

3 linux gnu-screen

我在屏幕中运行 irssi 并且我希望屏幕在分离后自动消隐终端(回滚)。我发现 screen 有一个名为“blanker”的命令可以清除屏幕,但我没有看到在分离后自动执行此操作的方法(无论是远程还是通过 Ca d)。

Tho*_*key 5

当您运行时screen,它会发送(除其他外)终端描述中定义的用于启动/停止全屏操作的字符串。它们是tite(在 termcap 中)smcuprmcup(在 terminfo 中)。

  • 当您启动 screen 或附加到会话时,它会发送ti( smcup)。
  • 当您停止屏幕或会话中的详细信息时,它会发送te( rmcup)。

根据终端描述,它们可用于将 xterm(和类似终端)切换到/从备用屏幕切换。对于大多数终端而言,从备用屏幕切换回正常屏幕会使全屏应用程序看起来好像已从屏幕上清除。(使用 xterm,您可以使用菜单来回切换:数据仍然存在,直到被清除)。

可以强制screen始终使用备用屏幕

  • term选项指定特定值,或
  • 使用 termcap/terminfo 调整来修改ti/ te( smcup/ rmcup) 设置

无论哪种方式都有缺点(因为您可能screen在不同的终端类型上运行),但后者更有可能工作,因为它不会干扰使用特殊键(光标键和功能键)的能力。

如果您更喜欢screen使用类似 xterm 的终端的备用屏幕,您可以添加到您的.screenrc文件中

termcapinfo xterm*|rxvt*  te=\E[?1049l:ti=\E[?1049h:
Run Code Online (Sandbox Code Playgroud)

如果您不想使用备用屏幕,则可以重新定义te以清除屏幕:

termcapinfo xterm*|rxvt*  te=\E[H\E[2J:ti=\E[H\E[2J:
Run Code Online (Sandbox Code Playgroud)

进一步阅读: