使用鼠标中键粘贴和 Shift+Ins 粘贴有什么区别?

使用鼠标中键粘贴和 Shift+Ins 粘贴有什么区别?

我的鼠标中键粘贴我突出显示的文本。

Shift+Ins也粘贴文本,但有时它粘贴的内容与通过单击鼠标中键粘贴的内容不同。

Shift使用鼠标中键粘贴和+粘贴有什么区别InsShift+是否与+Ins访问相同的缓冲区?CtrlV

(我正在使用 Linux Mint 发行版,如果这有什么区别的话。)

答案1

SHIFT+INS粘贴剪贴板的内容,如您所见这里。它是相同的CTRL+V(不同之处CTRL+V在于在图形终端中不起作用,您必须使用SHIFT+INS鼠标中键单击技巧)。

当您选择一段文本时,它将被加载到与上述缓冲区完全不同的缓冲区(分别是另一个剪贴板),并且即使没有 Xorg,您也可以在 tty 中通过鼠标中键使用它!

Ryran 写道:highlight + middle click不是 xorg 的事情。许多发行版也在虚拟控制台 (tty) 上开箱即用地支持它。 (例如,RedHat/Fedora 需要一个名为的包+服务gpm来安装和运行。)也就是说,每个highlight + middle click剪贴板都是其 tty 本地的(即,您无法在不同的 virt 控制台和/或 X 之间突出显示和粘贴)。

总结:在 Xorg 中你有两个不同的剪贴板。一种可以通过键盘操作,另一种可以通过鼠标操作。

答案2

你问的是大多数(如果不是全部)Linux 系统中都存在不同类型的文本选择和数据交换。这变得很重要,因为在 Wayland(xorg 的完全替代品)的开发过程中,保留中键粘贴(称为“主要选择”)的问题成为了充分的讨论。事实证明,这是我见过的关于该主题的最佳背景,因为团队讨论了是否保留初选,其中的详细信息被保留这里。我在下面复制了相关的背景信息,以防万一这个堆栈交换帖子比任意网址寿命更长(我知道,我说过这不太可能!):

X 有一个通用的选择机制,允许应用程序拥有任意选择并通过它们交换数据。这既可用于免打扰,也可用于剪贴板。从历史上看,X 中多个剪贴板的预期语义存在一些混乱,但是http://www.freedesktop.org/wiki/Specifications/clipboards-extension-spec/关于 X 下的工作方式,已经成为或多或少的普遍共识:

  • CLIPBOARD 选择对应于用户的显式复制粘贴操作,通常绑定到 Ctrl-C/Ctrl-V
  • PRIMARY 选择始终对应于焦点应用程序中当前选择的文本(或其他数据),并且中键单击会将 PRIMARY 选择的内容粘贴到任何上下文(通常是文本条目或编辑器)

接下来是关于重新实现 Wayland 初步选择的讨论和方法的更多详细信息,该方法已经完成(并且效果很好!)。

tl;dr:您会发现中键单击将粘贴“主要选择”缓冲区的内容,该缓冲区由突出显示文本填充,并且最近在 Wayland 中重新实现为与剪贴板系统不同,就像在 xorg 中一样。

答案3

在我的 Linux 计算机上,Shift+粘贴与+Ins相同。鼠标选择和中键单击是不同的剪贴板。CtrlV

答案4

[@ops 这个“最低 50 声望”的事情真的很烦人,我被迫在与我应该在的地方不同的地方回答!]

@eoinoc

在 Xorg 下简单地突出显示文本后,没有键盘快捷键来粘贴该文本,对吗?

您可以使用“xsel”CLI 工具来获取当前所选文本的内容:)

例如,我在下面的脚本中使用它,我已将其附加到特定的键绑定,这使我可以“大声朗读”任何应用程序中的任何(选定的)文本......

#!/usr/bin/env bash
FIFO=/tmp/test.wav
LANG=$(cat /tmp/CURRENT_LANG || echo "fr-FR") # "en-US"
SPEED="1.6"
MAX_VOL="130"
mkfifo "$FIFO"
xsel | sed 's/^[[:print:]]//g' | sed 's/[[:space:]][[:space:]]*/ /g' | sed '/^\s*$/d' | pico2wave -w /tmp/test.wav -l $LANG & mplayer -softvol -softvol-max $MAX_VOL -af scaletempo -speed $SPEED "$FIFO" # -volume 100 -af volume=30:0
\rm "$FIFO"

相关内容