Linux(X Window)剪贴板

Sunday, April 5, 2020

Linux下的剪贴板通常由“X Window”提供(X目前还是主流,但Wayland正逐渐取代X),X提供了好几个剪贴板,常用的是 Primery seletionClipboard seletion,它们使用不同的区域存储数据。

Clipboard seletion 就是我们熟悉的剪贴板,和Windows下一样:

  • 复制: Ctrl + c (或 Ctrl + Insert)
  • 剪切: Ctrl + x (或 Shift + Delete)
  • 粘贴: Ctrl + v (或 Shift + Insert)

Primery seletion 则不需要使用额外的快捷键,鼠标选中自动复制,鼠标中建粘贴

在虚拟终端(terminal)中

在虚拟终端里为了避免快捷键冲突一般使用 Ctrl + Shift + cCtrl + Shift + v 来复制和粘贴。

在vim中

Primery seletionClipboard seletion 分别对应vim中的 * 寄存器和 + 寄存器。使用举例:

  • 普通模式(Normal-mode)中复制当前行到 Clipboard seletion"+yy
  • 普通模式中粘贴 Primery seletion 的内容: "*p
  • 插入模式(Insert-mode)中粘贴 Primery seletion 的内容: Ctrl + r ,* (同时按下 Ctrlr ,松开后按 *

剪贴板管理器

fcitx输入法框架自带有一个简单的剪贴板管理器,能够满足日常需求,快捷键是 Ctlr + ;

如果有更复杂的需求(比如从剪贴板中检测下载链接并开始下载)则可能需要专门的剪贴板管理器,这里 列出了一些剪贴板管理器。

CLI工具

要在shell脚本中使用剪贴板的内容需要借助命令行工具,常用的是“xclip”,下面是tldr 给出的使用示例:

Copy the output from a command to the X11 primary selection area (clipboard):

$ echo 123 | xclip

Copy the output from a command to a given X11 selection area:

$ echo 123 | xclip -selection primary|secondary|clipboard

Copy the contents of a file to the system clipboard, using short notation:

$ echo 123 | xclip -sel clip

Copy the contents of a file into the system clipboard:

$ xclip -sel clip input_file.txt

Copy the contents of a PNG image into the system clipboard (can be pasted in other programs correctly):

$ xclip -sel clip -t image/png input_file.png

Paste the contents of the X11 primary selection area to the console:

$ xclip -o

Paste the contents of the system clipboard to the console:

$ xclip -o -sel clip

Paste the contents of the system clipboard into a file:

$ xclip -o -sel clip > output_file.txt

参考:

linux

Linux图形化身份认证

linux下查看帮助文档的几种方式