如何使用寄存器从一个 vim 实例复制到另一个

Ric*_*ard 3 vim

如何选择+寄存器?按照以下说明将文本从 vim 复制/粘贴到另一个 vim 时遇到问题:

In the vim, highlight, select + register, and yank (save) to it:
Shift-v
"+y

In the second vim, select + register, and paste from it:
"+p
Run Code Online (Sandbox Code Playgroud)

我想我按错了键。当它说"+y,我只需点击按键"+y按顺序?(即Shift+ 'Shift+ =y)。它对我不起作用。

我在 X11 终端中使用 Red Hat 和 vim。而vim版本是

$vim --version | grep xterm_clipboard
-xterm_clipboard -xterm_save
Run Code Online (Sandbox Code Playgroud)

Gil*_*il' 5

Vim 使用系统剪切和粘贴机制在实例之间复制文本。当您在终端中运行 vim 时,它无法直接访问任何剪切和粘贴机制。如果 vim 运行在 xterm 或其他提供对 X 选择和剪贴板内容的访问的终端中,vim 可以使用它;但是,您的 vim 二进制文件是在不支持该功能的情况下编译的。

如果两个 vim 实例都在同一台机器上运行,则可以使用临时文件进行通信:

:w ~/vim.tmp
:r ~/vim.tmp
Run Code Online (Sandbox Code Playgroud)

如果两个 vim 实例都连接到同一个 X 显示(因为DISPLAY环境变量指向同一个 X 显示,vim 程序本身不需要任何类型的 X 支持),您可以通过外部使用 X 选择xselxclip等程序。您可以省略p-selection primary或选择不同的选择(-s/secondary-b/ clipboard)。使用:w !(注意空格)复制:

:w !xsel -ip
:w !xclip -i -selection primary
Run Code Online (Sandbox Code Playgroud)

:r!粘贴:

:r !xsel -op
:r !xclip -o -selection primary
Run Code Online (Sandbox Code Playgroud)