主要选择和剪贴板缓冲区有什么区别?

主要选择和剪贴板缓冲区有什么区别?

我正在 Webkit 浏览器中进行调整Linux我遇到了这些术语“初选“ 和 ”剪贴板选择或缓冲区“ 常常。

  • 我想了解它们是什么以及它们有什么区别?
  • 拖放粘贴适合在哪里?
  • xclip在这件事上具体的工作是什么?

答案1

他们是选择原子, 或者X原子

客户端间通信约定手册对于 X 州:

可以有任意数量的选择,每个选择都由一个原子命名。然而,为了符合客户端间的约定,客户端只需处理以下三个选择:

  • 基本的
  • 中学
  • 剪贴板

简而言之:

  • 基本的选择通常由终端在选择文本并通过按鼠标中键粘贴时使用。如在所选文本位于主剪贴板中没有任何明确的正在发生复制动作。快速复制是一个很好的名字。 (不限于终端模拟器,仅作为示例。)
  • 剪贴板主要用于与MS Windows 风格剪贴板操作。选择+复制。数据驻留在缓冲

在这里阅读更多内容。

对 PRIMARY 的支持是早在 2008 年就添加到 WebKit 中

xclip,它是用于 X 选择(剪贴板)的命令行界面(工具),传统上将数据添加到主剪贴板。 (可选)人们可以通过-clipboard给定参数的选项来选择使用哪一个。


更正:拖放位于Xndnd。维基百科上还有一个条目规格。它用Xdnd选择并且不应干扰 PRIMARY。

该协议至少由 Qt 和 GTK 实现。

答案2

FWIW,在 Debian (Kali) 上,以下是不同的选择如何对应于各种“粘贴选项”:

echo primary | xclip -sel p
echo secondary | xclip -sel s
echo clipboard | xclip -sel c

# Ctrl + Shift + v: clipboard
# Middle click: primary
# Paste selection: (Shift + Insert): primary

# with the -o option, xclip outputs the specified "selection"
# to stdout:

xclip -o -sel p
# stdout output: "primary"

xclip -o -sel s
# stdout output: "secondary"

xclip -o -sel c
# stdout output: "clipboard"

就我而言,我在 VMWare 虚拟机中执行此操作。主机操作系统使用/查看/接收的选择是主要的。

如果您不想使用多个选择,则可以使用 xclip 别名来同时使用主要选择和剪贴板选择,如下所示:

剪辑

相关内容