我们都知道在 Windows 下可以使用 Ctrl-C 和 Ctrl-V 来对选定文本进行复制与粘贴,而在 X Window 下,有着完全不同的粘贴模式。
在X中,存在Slection, Cut Buffer 以及 Drag and Drop 三种机制用于在不同客户端之间传送文本。其中Selection最为常用,也与 Windows 中的复制粘贴最为相似。
Selection 机制允许用户在某一客户端中选中文本,并在另一客户端中使用这段文本,文本的传输通过两个客户端依照通信协议 (ICCCM) 完成。
此外,X 设定了两种文本选择方案,分别称为 PRIMARY 与 CLIPBOARD ,可以把它们看作两个不同的系统剪切板。
当用户在客户端内选中文本时,文本内容即会被放入 PRIMARY 中,而若想将文本放入 CLIPBORAD 中,则需要在客户端内显式地执行复制命令,比如右键后选 copy 。
两个剪切板有各自的文本粘贴方式。若想粘贴 PRIMARY 中的内容,大多客户端中可以使用鼠标中键或者按 SHIFT-Ins ,如果想粘贴 CLIPBOARD 中的内容,需要显式地执行粘贴命令,比如右键菜单或编辑菜单中的粘贴选项。
需要注意的是,如果想在 Vim 中使用系统剪切板,需要在编译时添加 +xterm_clipboard 选项,添加后方可以用 "+gP 粘贴 CLIPBOARD 中的内容。