xterm 分别复制到 PRIMARY 和 CLIPBOARD

xterm 分别复制到 PRIMARY 和 CLIPBOARD

我希望能够在 xterm 中使用这两种选择。

我想要选择文本并使用鼠标中键单击来复制和粘贴PRIMARY

我想将Ctrl+Shift+CCtrl+Shift+V复制并粘贴到 和 中CLIPBOARD

没有任何变化Xresources,xterm 似乎用于PRIMARY选择和中键单击复制/粘贴。

我已将以下内容添加到我的Xresources

XTerm.vt100.translations: #override \n\
    Ctrl Shift <Key>C: copy-selection(CLIPBOARD) \n\
    Ctrl Shift <Key>V: insert-selection(CLIPBOARD)

粘贴功能按我想要的方式运行 - 我可以使用鼠标中键单击来粘贴PRIMARYCtrl+Shift+V粘贴CLIPBOARD。但是复制不起作用 - 每当我突出显示文本时,它都会被复制到PRIMARYCLIPBOARD

我怎样才能实现我的愿望?

详细信息:Ubuntu 17.04,xterm 版本 324

答案1

不幸的是,由于 xterm 的内部限制,您只能通过选择另一个终端仿真器(或通过修补 xterm 代码)来实现您想要的效果。

回答https://stackoverflow.com/a/21204937类似问题指向 debian 错误报告https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=588785作为一种解决方法被copy-selection引入。

据我所知,xterm 内部只能处理一个选定的区域,并且copy-selection只是将同一区域显示为多个选择(PRIMARY 和 CLIPBOARD)的一种方法。

注意,copy-selectionPRIMARY 和 CLIPBOARD 共享相同的内容,直到另一个应用程序声明其所有权为止。选择项变得分离,只有一个选择项仍可以属于 xterm。

建议,如何保留另一个应用程序持有的 PRIMARY 选择并将某些内容放入 xterm 中的 CLIPBOARD,请参阅手册页中的“自定义键绑定”部分。但是它不如 [Ctrl+Shift+V] 工作流程方便。释放鼠标按钮时使用 Shift:

*VT100*translations:    #override \n\
    ~Shift     <BtnUp> : select-end(PRIMARY, CUT_BUFFER0) \n\
     Shift     <BtnUp> : select-end(CLIPBOARD, CUT_BUFFER1)

该错误报告提示了如何在 xterm 中启动新选择时保留剪贴板内容:使用剪贴板管理器。但是,此类应用程序会收集所有剪贴板事件,有时您需要手动清理敏感数据。此外,它们还可以以一种相当奇怪的方式与 vim 可视化选择进行交互。

因此你的选择是:

  • 只需接受 xterm 具有单个选定区域
  • 稍微改变一下你的习惯,在完成选择时使用不同的按键来选择目标,并尝试使用剪贴板管理器
  • 切换到按照您的期望运行的终端仿真器(附加好处是可以随时重新包装窗口大小并切换暗/亮配置文件,但会失去安全键盘功能)

相关内容