我希望能够在 xterm 中使用这两种选择。
我想要选择文本并使用鼠标中键单击来复制和粘贴PRIMARY
。
我想将Ctrl+Shift+C
和Ctrl+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)
粘贴功能按我想要的方式运行 - 我可以使用鼠标中键单击来粘贴PRIMARY
和Ctrl+Shift+V
粘贴CLIPBOARD
。但是复制不起作用 - 每当我突出显示文本时,它都会被复制到PRIMARY
和CLIPBOARD
。
我怎样才能实现我的愿望?
详细信息: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-selection
PRIMARY 和 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 具有单个选定区域
- 稍微改变一下你的习惯,在完成选择时使用不同的按键来选择目标,并尝试使用剪贴板管理器
- 切换到按照您的期望运行的终端仿真器(附加好处是可以随时重新包装窗口大小并切换暗/亮配置文件,但会失去安全键盘功能)