在 Vim 中 "+ 和 "* 寄存器有什么区别?

Gee*_*eek 5 linux vim vimrc

在 Vim 中"+"*寄存器有什么区别?哪个应该用于从其他应用程序复制和粘贴到 Vim?我是否需要在.vimrc文件中附加任何内容才能使这两个寄存器工作?

use*_*686 9

寄存器是 X11 特性;它们不是 Linux 特定的,甚至不是 Unix 特定的,而是适用于任何使用 X11 的操作系统。

如 Vim 文档 ( :help quoteplus) 中所述,该"+寄存器对应于 X11 中的 'CLIPBOARD' 选择,而该"*寄存器对应于 'PRIMARY' 选择。

  • 更详细的解释:

    X11 图形环境支持多个类似剪贴板的缓冲区,称为selections。共有三种标准,其中两种被广泛使用:

    • PRIMARY选择是你每次更新选择文本。要从中粘贴(在图形程序中),请单击鼠标中键或使用ShiftInsert. 在 Vim 中,它可以通过"*寄存器访问。

    • CLIPBOARD当您明确剪切或复制任何内容(文本或其他数据)时,选择会更新。换句话说,它就像 Windows 或 Mac OS 剪贴板一样使用。要粘贴它,通常的快捷方式是CtrlV在图形程序中。在 Vim 中,它可以通过"+寄存器访问。

您不需要任何特殊设置即可使用它们;然而,你的vim必须支持X11(寻找配置+X11vim --version),以及-很明显-寄存器里面只有X11的工作。

但是,无论您使用的是 Vim 的 GUI 版本还是终端版本,都没有关系。(在 Arch Linux 上,该gvim软件包提供了启用 X11 支持的 GUI 和终端版本。)

资源: