谁在 X11 中存储复制/粘贴缓冲区?

谁在 X11 中存储复制/粘贴缓冲区?

当用鼠标突出显示一段文本时,可以通过在所需位置单击鼠标中键或使用始终经典的Shift+Insert组合键来粘贴它。但是,当关闭所选文本的区域时,粘贴选项无效,因为复制的文本被删除。

准备粘贴的文本到底存储在哪里?为什么取决于您从中获取文本的应用程序而不是将该文本存储在其他地方,例如,位于内存中与突出显示文本的来源无关的位置,并且即使在应用程序关闭或选择其他文本时也将其保留在那里?

答案1

在 X 中,将有一个应用程序拥有当前选择,通常(但并非总是)可见。当您粘贴到 X 客户端时,该应用程序用于选择数据的 X 服务器,并且请求被提交给选择所有者,他提供的信息。

选择拥有者可能能够提供多于一种格式的选择数据。对于文本,可能是 UTF-8(较新)或 ISO-8859-1(较旧)。

除了选择,有类似的转移称为削减缓冲区。无论应用程序当前是否拥有该选择,都可以传输这些数据,但数据类型更加有限。

ICCM(客户端间通信约定手册)记录了这一点。然而,并非所有应用程序都遵循它(Netscape 是一个值得注意的例外)。

剪贴板的共享方式与 X 选择不同,有些人更喜欢这种方式。剪贴板不太依赖于在给定时刻谁实际拥有数据。

xterm 使用 X 工具包实现 X 选择、剪贴板和剪切缓冲区。

以供参考:

答案2

我不确定,但看起来你正在谈论剪切缓冲区。

有关剪贴板和剪切缓冲区如何工作的更多信息,请查看此链接:

免费桌面剪贴板简短规格,
客户端间通信约定手册
X 选择、剪切缓冲区和 Kill Ring

快乐挖掘!

相关内容