如何切换或关闭发送到剪贴板的文本选择


12

我想禁用默认的行为,该行为似乎发生在我尝试过的所有Linux发行版中,即所有选定的文本都立即发送到剪贴板(Mint,Ubuntu,Fedora,SuSE等)和每个窗口管理器(Gnome) ,KDE,Cinnamon),并且其行为更类似于Windows实现。

我知道这是Linux中许多人钟爱的行为,而且我敢肯定,很多人会认为我是个白痴。我想要这样做的原因是,在浏览GUI时,我是键盘迷。(例如,当我使用Linux并复制URL,然后切换到浏览器并键入Ctrl + L时,它将选择地址栏,然后将我想要的粘贴向下移动一个凹口,然后用我要覆盖的内容替换它。 )我知道有很多解决方法,但我并不在乎,我更希望能够切换剪贴板的行为。


我通常只是忽略X的文本选择(单击中心以粘贴),而只使用Ctrl-C Ctrl-V Ctrl-X 剪贴板 (不是X的选择),它们是不同的东西。-对于在终端和工作的一些其他情况下,我找到了X光的选择是很方便的-否则我就使用Ctrl C,V,X -这是非常方便的一些时间,因为它可以访问存储2串。但是,X选择仅内置于X中,当从一个窗口切换到另一个窗口并选择文本时(这会导致未选择前一个选择),它非常易变……
Peter.O 2015年

1
此Q / A(Askubuntu)可能有助于了解X- 选择的功能以及它与Ctrl C,V,X 剪贴板的交互方式:复制和粘贴行为不一致。有解决办法吗?
Peter.O 2015年

1
谢谢Peter.O。但是似乎我还没有找到一种不用鼠标就可以忽略X的文本选择的方法。我几乎只使用Ctrl + C,X,V,但是当我输入Ctrl + L来访问地址栏时(由于链接,我现在知道了),Firefox用Primary替换了Clipboard。所以我想这确实是一个更大的问题。希望我一直在阅读的一些X替代品可以改善这种情况。
syserss 2015年

Answers:


10

首先是一个误解:

任何选定的文本都会立即发送到剪贴板

实际上,在接收应用程序请求之前,永远不会“发送”文本。当您选择文本时,该应用程序仅声明选择的内容,这基本上意味着它会发出一个标志来表明从现在开始拥有它。

现在开始您的问题:

在X11中,可以有多个选择。其中2个具有众所周知的名称并已标准化。它们分别称为PRIMARY和CLIPBOARD。它们各自的常规行为如下:

    • 选择文本后,应用程序会声明PRIMARY
    • 应用程序从拥有的应用程序中请求PRIMARY,并将其内容粘贴在中键上。
  • 剪贴板
    • 当给出显式命令时,应用程序声明CLIPBOARD,通常为Ctrl- c
    • 应用程序从拥有的应用程序请求CLIPBOARD并在给出显式命令(通常为Ctrl-)时粘贴其内容v
    • 我可能不确定其他规则,例如,如果没有应用程序拥有CLIPBOARD,但是某些应用程序拥有PRIMARY,则在Ctrl-上粘贴primary v

看来CLIPBOARD已经满足您的需求。您可以根据需要忽略PRIMARY(但请注意,某些较旧的应用程序xterm可能仅支持PRIMARY)。就我个人而言,我做的相反:我忽略CLIPBOARD,仅使用PRIMARY。我想那只是我学会使用X11的方式,我什至没有意识到起初有CLIPBOARD。但是为了减轻您所描述的问题,我通常希望有一个可推送和可弹出的PRIMARY选择堆栈,因此在用其他选择破坏之后,我可以“弹出”先前的选择。

在回答您关于是否可以禁用PRIMARY行为的明确问题时,我认为这将非常困难。最直接的方法是在每个应用程序(或应用程序使用的工具箱)中分别禁用它,这肯定是不可行的。我想有一种“ X11防火墙”可以阻止要求构造PRIMARY的请求,但是我认为,如果不考虑PRIMARY并仅使用CLIPBOARD,这确实可以给您带来更多好处。

更多信息:Primary Selection和Clipboard Buffer有什么区别?


1
感谢Celada,我希望我能找到一种无需借助鼠标就可以忽略Primary的方法。听起来好像没有一个简单的方法可以解决我的烦恼,并且只要我使用Linux,就需要修改自己的行为。非常感谢您的彻底回答!
syserss

1
xterm是完全可定制的(与translations资源)来告诉它使用任何选择或剪切缓冲区(有落差背上如果需要的话)
斯特凡Chazelas

那SECONDARY呢?我很确定它也有一个众所周知的名称并且已经标准化。应用程序很少支持它。
flarn2006 '19

对于那些想要同步PRIMARY和CLIPBOARD的用户,请parcellite 按照superuser.com/questions/68170/…中的
Alec Istomin

10

我四处乱逛,不小心启用了剪贴板的内容和 KDE Plasma的剪贴板应用程序中的选择选项。取消选中此选项可以为我解决类似的问题。

KDE等离子剪贴板实用程序配置


5
是的,OP还有另外一个隐藏的解决方案:选中该复选框,Ignore selectionPlasma的剪贴板管理器将永远不会再覆盖您的Ctrl-V剪贴板。如果您的剪贴板内容被PRIMARY选择内容覆盖,那不是X11的错,通常是工作中的剪贴板管理器。
sweisgerber.dev

我希望我可以投票50次,多年来一直在寻找它!
eeijlar

2

对于所有Gnome应用程序,可以从Gnome-Tweaks /键盘和鼠标/中间单击粘贴(禁用gtk-enable-primary-paste Gnome选项)中禁用“中间单击粘贴”。

XMousePasteBlock是一种适用于整个X且不能完全禁用中间单击(例如,用于关闭浏览器中的选项卡)的解决方案,该解决方案应由用户运行,并且也打包为AUR中的 Arch使用。


1

在XFCE中,我遇到了同样的问题,更糟糕的是,自动选择会破坏远程查看器(如x2go,vnc)中的复制/粘贴...然后,每次选择文本时,我都必须重新打开一个新的会话来解决该问题。

解决方案:从外壳运行xfce4-clipman,右键单击任务栏并选择属性,然后禁用“ 忽略选择”和“ 同步选择”

在此处输入图片说明

感谢@ sweisgerber.dev的这种方法

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.