中间点击粘贴如何工作?

我不明白中间点击粘贴。

有时我会突出显示文本,在窗口中间单击我希望它去的地方,它可以实现我想要的效果。 有时它没有。

例如,当我在Firefox中突出显示文本时,然后在中间点击进入终端vim,没有任何反应。

到底是怎么回事?

谢谢!

由单独的X / DE剪贴板引起; 让它们与ClipIt保持同步

  • 正如ImaginaryRobots的回答所解释的那样 ,有两个不同的剪贴板:X剪贴板和桌面环境/窗口管理器剪贴板(Gnome / Unity,KDE等); 根据所使用的选择方法(即只是突出显示,或显式的Ctrl-C /右键单击复制等),两个剪贴板可能无法同步。

    • 因此,在GUI程序和终端之间复制/粘贴时经常会出现问题。
  • 如果遇到此问题,最简单的解决方案是使用一种工具来保持这两个单独的剪贴板同步。 我推荐ClipItsudo apt-get install clipit

    • 启动clipit(为方便起见,添加到Startup Applications),在Preferences下,选中Use PrimarySynchronize Clipboards选项:

    在此处输入图像描述

实际上有2种不同的复制和粘贴 – 这是由底层X11图形系统提供的,并且是由窗口管理器(Gnome,KDE等)提供的。

在没有单击的情况下突出显示文本就足以将其复制到X11缓冲区空间,并且中键单击将粘贴出来。 如果你使用control-X或control-C,它也将使用窗口管理器的缓冲区空间(因为你必须突出显示它才能使用这些键),但只有一个控件-V将从那里得到文本 – 中间点击不会。

为了让事情更加混乱,窗口管理器复制和粘贴也可以使用非文本项,所以即使你的突出显示已经将一些文本放入两个缓冲区,你可能会在窗口管理器缓冲区中有一些文件或复杂数据而不是两者将不同步。

有些应用程序足够聪明,可以理解和使用两者,有些则不然。 在复制和粘贴时,终端窗口通常是愚蠢的。 每个应用程序通常都有设置,告诉他们如何修复复制和粘贴混乱,但是正确设置它们是很多工作。 我认为Ubuntu默认获取大部分内容。

这种情况在历史上更糟糕,并导致freedesktop定义标准:

http://standards.freedesktop.org/clipboards-spec/clipboards-latest.txt