禁用GNU屏幕选择缓冲区/剪贴板管理

时间:2018-09-12 21:07:29

标签: terminal gnu-screen

我正在Gentoo Linux上的图形终端仿真器中运行GNU screen-4.6.1。

每当我脱离会话(例如Ctrl + a,d)或连接到会话(例如screen -r)时,我当前的主选择和剪贴板缓冲区就会被清空。

我只能假设屏幕正在尝试跨会话进行一些花哨的剪贴板处理/持久化。我在GNU屏幕上找不到有关此功能的任何信息。我以为我快疯了,但是绝对是屏幕弄乱了这些缓冲区。

无论是什么,我都希望禁用它,因为它会使我的工作流程混乱。这个“功能”叫什么,在哪里可以了解到更多信息,以及如何禁用它?

1 个答案:

答案 0 :(得分:0)

GNU screen 使用其终端说明来查找如何初始化屏幕。在infocmp的输出中,这将由 smcup rmcup (例如

)的设置显示
infocmp -1 screen |grep "mcup="

产生

    rmcup=\E[?1049l,
    smcup=\E[?1049h,

对于xterm(以及大多数模仿它的终端),它会切换到备用屏幕。通常,您的主要选择在终端窗口上“存在”,并切换到备用屏幕会清除该窗口,并用其他东西代替。

xterm具有资源设置(keepSelection),可以通过控制/鼠标中键菜单"Keep Selection"中的条目来设置/取消设置。设置(对于xterm)可以保留选择;其他终端可能会“无限期地”保留选择,或者在这种情况下直接放弃选择。

此问题的简单解决方案(与终端无关)是避免将替换屏幕与GNU screen (例如,

)一起使用
infocmp -1 screen |grep -v "mcup=" >foo
sudo tic foo

替换没有这些功能的终端说明。当然,这需要您重新启动 screen ,仅使用正常屏幕

只有一个备用屏幕。如果您正在GNU screen 中运行某些应用程序,则切换至该应用程序/从该应用程序切换将使用屏幕的 模拟 屏幕,其行为与在 screen 之外运行该行为不同。