Follow the steps below:

  1. Open your terminal, run vim –version | grep xterm_clipboard
  2. Check the mark before xterm_clipboard, if it’s a + (plus sign), go to step 3. If it’s a - (minus sign), run sudo apt-get install vim-gnome, then sudo update-alternatives –config vim, select vim.gnome in the list. (You should use the proper command that corresponds to your system)
  3. Run the command vim –version | grep xterm_clipboard, now you should be able to get + (plus sign). Otherwise, use Google to see what’s going on..
  4. Check your whether your system clipboard uses + (plus sign) or * (star sign) register of vim, this is different from OS to OS, sometimes they’re equivalent. How to check? Easy, just copy some string from a website, then open vim and type :reg, check which register stores the string you just copied from system clipboard. (It shows + on my machine).  If it’s a + (plus sign), add set clipboard=unnamedplus to your .vimrc. If it’s a * (star sign), add set clipboard=unnamed to your .vimrc.
  5. Try it out. Copy something in your vim, and then type :reg to check whether the system clipboard has changed. If it does, your will get whatever is in that register when you’re doing Ctrl-V outside of vim.

Updated: 2013-05-30 17:40

 

若干年前没搞定,基本放弃。结果坐在旁边的Loo说”+y可以搞定,但是他用的是gVim. 俺又不喜欢gVim,不过倒是提起兴趣继续搞。

下面是我做的步骤,我用的是(但是我不知道到底哪几步起作用了,需要在别的机器repro一下能确定)

  1. vim –version | grep xterm_clipboard
  2. 如果第1步的xterm_clipboard前面是加号+,跳到第3步。若是减号-,运行 sudo apt-get install vim-gnome. 然后运行 sudo update-alternatives –config vim. 在列表里面选中vim.gnome.
  3. 继续运行第1步的命令,如果xterm_clipboard前面是+,继续下一步。否则,我也不知道你咋办,你去Google哇。
  4. 确定你的系统剪切板是+还是*. 这个因机器还有操作系统版本而异。有些情况这两个寄存器是等同的。怎么确定是哪个?简单。你随便找个网页Ctrl-C复制一段话,打开vim之后,输入:reg命令,看哪个寄存器里面存的东西是你刚刚复制的。我的机器上显示的是+, 所以在.vimrc里面加一行,set clipboard=unnamedplus. 如果你的是*, 那么加的这行应该是 set clipboard=unnamed.
  5. 测试。在vim随便复制一段文字, 然后输入:reg看你对应的寄存器里面的值有没有变。你的vim里面的+或者*是和系统的clipboard共享的,所以你看到什么,你在vim外面Ctrl-V就会出来什么。而往vim里面粘贴东西直接p就可以了,因为改掉vimrc之后你在vim里面所有的复制都是默认到+,所以你粘贴也是默认从+来。多省事!

但是vim共享系统剪切板有一个潜在的问题,就是你在vim里面复制了一些东西,还没有粘贴,你这时候跳出来在外面一通Ctrl-C,然后你回到vim就会发现你刚刚复制的东西没了。不过目测这个问题应该不会很困扰我。

About these ads