【问题标题】:Disable GNU screens selection buffer / clipboard management禁用 GNU 屏幕选择缓冲区/剪贴板管理
【发布时间】:2019-02-17 14:04:18
【问题描述】:

我在 Gentoo Linux 上的图形终端模拟器中运行 GNU screen-4.6.1。

每当我从会话中分离(例如 Ctrl+a、d)或附加到会话(例如 screen -r)时,我当前的主要选择和剪贴板缓冲区似乎都被清空了。

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

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

【问题讨论】:

    标签: terminal gnu-screen


    【解决方案1】:

    GNU screen 使用其终端描述来查找如何初始化屏幕。在 infocmp 的输出中,这将通过 smcuprmcup 的设置来显示,例如,

    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 之外运行它不同的行为。

    【讨论】:

    • 谢谢,这似乎是合理的。所以你是说切换到备用屏幕时确实是终端仿真器清除缓冲区?这难道不应该影响htopmcless 等工具吗?我从来没有让这些清除缓冲区。我目前即使使用 GNU 屏幕也无法重现该效果,因此必须满足一些条件才能触发它。我想知道...
    猜你喜欢
    • 2013-04-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-21
    • 1970-01-01
    • 1970-01-01
    • 2015-02-19
    相关资源
    最近更新 更多