vim的复制粘贴小结

正在学习使用vim,前一阵想学linux,然后突然发现vim是个好东西,学习使用,今天发现,无法使用ctrl+c/ctrl+v来跟系统其它应用之间做复制粘贴,非常不爽,搜了一下,发现很多人有写这个问题,试了几个,觉得这个最好,转帖过来收藏。

原文地址:http://lsong17.spaces.live.com/blog/cns!556C21919D77FB59!603.entry

内容:

用vim这么久 了,始终也不知道怎么在vim中使用系统粘贴板,通常要在网上复制一段代码都是先gedit打开文件,中键粘贴后关闭,然后再用vim打开编辑,真的不 爽;上次论坛上有人问到了怎么在vim中使用系统粘贴板,印象里回复很多,有好几页的回复却没有解决问题,今天实在受不了了又在网上找办法,竟意外地找到 了,贴出来分享一下。

如果只是想使用系统粘贴板的话直接在输入模式按Shift+Inset就可以了,下面讲一下vim的粘贴板的基础知识,有兴趣的可以看看,应该会有所收获的。
vim帮助文档里与粘贴板有关的内容如下:

  1. vim有12个粘贴板,分别是0、1、2、...、9、a、“、+;用:reg命令可以查看各个粘贴板里的内容。在vim中简单用y只是复制到“(双引号)粘贴板里,同样用p粘贴的也是这个粘贴板里的内容;
  2. 要将vim的内容复制到某个粘贴板,需要退出编辑模式,进入正常模式后,选择要复制的内容,然后按"Ny完成复制,其中N为粘贴板号(注意是按一下双引号然后按粘贴板号最后按y),例如要把内容复制到粘贴板a,选中内容后按"ay就可以了,有两点需要说明一下:
    • “号粘贴板(临时粘贴板)比较特殊,直接按y就复制到这个粘贴板中了,直接按p就粘贴这个粘贴板中的内容;
    • +号粘贴板是系统粘贴板,用"+y将内容复制到该粘贴板后可以使用Ctrl+V将其粘贴到其他文档(如firefox、gedit)中,同理,要把在其他地方用Ctrl+C或右键复制的内容复制到vim中,需要在正常模式下按"+p;
  3. 要将vim某个粘贴板里的内容粘贴进来,需要退出编辑模式,在正常模式按"Np,其中N为粘贴板号,如上所述,可以按"5p将5号粘贴板里的内容粘贴进来,也可以按"+p将系统全局粘贴板里的内容粘贴进来。

注意:在我这里,只有vim.gtk或vim.gnome才能使用系统全局粘贴板,默认的vim.basic看不到+号寄存器。

关于跨文件复制的文件,vim的帮助中的解释(如何使用帮助--命令模式下输入 :help 命令名):

CTRL-R {0-9a-z"%#*+:.-=}                                        *i_CTRL-R*
                Insert the contents of a register.  Between typing CTRL-R and
                the second character, '"' will be displayed to indicate that
                you are expected to enter the name of a register.        
                The text is inserted as if you typed it, but mappings and  
                abbreviations are not used.  If you have options like    
                'textwidth', 'formatoptions', or 'autoindent' set, this will
                influence what will be inserted.  This is different from what
                happens with the "p" command and pasting with the mouse.
                Special registers:
                        '"'     the unnamed register, containing the text of
                                the last delete or yank
                        '%'     the current file name
                        '#'     the alternate file name
                        '*'     the clipboard contents (X11: primary selection)
                        '+'     the clipboard contents
                        '/'     the last search pattern
                        ':'     the last command-line   
                        '.'     the last inserted text
                        '-'     the last small (less than a line) delete
                                                        *i_CTRL-R_=*


你可能感兴趣的:(vim的复制粘贴小结)