如何选择+
寄存器?我按照以下说明将文本从 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
我想我按错了键。当它说时,我是否只需按顺序按下"+y
键",, ? (即+ 、+ 、)。它对我不起作用。+yShift'Shift=y
我在 X11 终端中使用 Red Hat 和 vim。 vim 版本是
$vim --version | grep xterm_clipboard
-xterm_clipboard -xterm_save
答案1
Vim 使用系统剪切和粘贴机制在实例之间复制文本。当您在终端中运行 vim 时,它无法直接访问任何剪切和粘贴机制。如果 vim 运行在 xterm 或其他提供 X 选择和剪贴板内容访问的终端中,vim 可以使用它;然而,你的 vim 二进制文件在编译时并不支持该功能。
如果两个 vim 实例都在同一台机器上运行,则可以使用临时文件进行通信:
:w ~/vim.tmp
:r ~/vim.tmp
如果两个 vim 实例都连接到同一个 X 显示(因为DISPLAY
环境变量指向同一个 X 显示,vim 程序本身不需要任何类型的 X 支持),您可以通过外部使用 X 选择程序如谢尔或者剪辑。您可以省略p
或-selection primary
或选择不同的选择(-s
/secondary
或-b
/ clipboard
)。使用:w !
(注意空格)复制:
:w !xsel -ip
:w !xclip -i -selection primary
并:r!
粘贴:
:r !xsel -op
:r !xclip -o -selection primary
答案2
在 Red Hat(和 Fedora)上,使用该/usr/bin/vimx
命令。如果您使用该命令,+寄存器(系统剪贴板)将起作用vimx
。
vimx 支持编译于以下版本的系统剪贴板:
$ vimx --version | grep xterm_clipboard
+eval +mouse_dec +startuptime +xterm_clipboard
vimx
位于vim-X11
包装中,其中还包含gvim
.
使用这个别名:
alias vim=/usr/bin/vimx
答案3
您的示例使用+
寄存器。要使用?
寄存器,只需使用相同的命令,将 替换+
为?
。
例如:
"?y
"?p
如果您尝试使用系统剪贴板在 vim 实例之间粘贴,您需要g
在命令前面添加 a ,因此
"+gy
"+gp