VIM使用系统剪贴板

时间:2016-12-11 13:57:57

标签: linux vim

所以,我是VIM的真正菜鸟,现在再次尝试最终达到生产力水平。

我对这个编辑器的一个大问题是它使用剪贴板本身,我不明白为什么。

使用VIM,我的系统现在有3个剪贴板,从我的角度来看,完全没有必要。使用CTRL + x,CTRL + c和CTRL + v的全局剪贴板,mousebutton3上的剪贴板粘贴最后突出显示的文本,现在是VIM剪贴板,我可以在VIM中使用y和p。

关于这个主题有一些线索,但答案只会让我更加困惑。 那么我该如何实现,VIM只使用全局剪贴板和mousebutton3上的剪贴板?

有些人可能会说我应该使用*,但这只会通过行然后输出"搜索命中BOTTOM,继续在TOP"在底部。也许我不理解语法和答案建议我在击中*之前使用不同的击键,但我不知道我可能做错了什么。

1 个答案:

答案 0 :(得分:3)

  

也许我不明白......

是。这似乎是你的问题。

假设您安装了正确的Vim并且:echo has('clipboard')返回1,您可以通过相关的寄存器直接访问系统的两个“剪贴板”:

  • PRIMARY (鼠标中键),来自"*
  • CLIPBOARD (Ctrl + c,Ctrl + x,Ctrl + v),来自"+

您应该按",然后按*+,然后按yp

如果您想在Vim中抽出一些内容并将其粘贴到另一个程序中,只需单击鼠标中键,请使用*寄存器:

"*yy

如果您在其他程序中选择了某些内容并希望将其放入Vim,请使用*寄存器:

"*p

如果您想在Vim中抽取一些内容并使用Ctrl + v将其粘贴到另一个程序中,请使用+寄存器:

"+yy

如果您使用Ctrl + c复制了其他程序中的某些内容并希望将其放入Vim,请使用+寄存器:

"+p

您可以"*中的这一行同步""y(默认情况下pvimrc使用的注册):

set clipboard^=unnamed

如果您要同步"+""

set clipboard^=unnamedplus

如果要同步两者:

set clipboard^=unnamed,unnamedplus

这应该允许你在程序之间拉/放,而不必告诉Vim使用哪个寄存器。

参考:

:help registers
:help x11-selection
:help 'clipboard'