http://blog.csdn.net/lalor/article/details/7272325
vim很强大,时常都会有新的惊喜和发现。今天解决的是两个关于剪贴板的问题。
1、怎样在X系统与vim进行拷贝粘贴操作(即vim与系统剪贴板的交流)?
2、拷贝某段文本A,覆盖文本B(或者用d或x删除B)。之后再使用p进行粘贴,就变成了B的内容,如果希望继续粘贴A,怎么办?
首先来点基础,vim有多个剪贴板,其中就包括了系统剪贴板。使用命令:reg可以看到各个剪贴板的内容。其中“”表示当前使用的剪贴板,“0-9是历史剪贴板,“#就是系统剪贴板了(你可以在系统里拷贝一些东西,看是不是会出现在“#剪贴板里)。在vim中使用y可以把内容拷贝到“”号剪贴板,继续y会把新的东西放入“”,而原来“”的东西就会被压入“0-9的各个历史剪贴板中。X11系统下还有一个“*的剪贴板对应中键拷贝粘贴,windows不知道有没有。
解决第一个问题:
“+y 把选中内容拷贝到”+号剪贴板,即系统剪贴板
“+p 把系统剪贴板的内容粘贴到vim,这一个用shift+insert也可完成
解决第二个问题:
“0p 可以把已经被挤到”0剪贴板的内容A重新粘贴出来
嫌长的做一个map,映射到某个功能键或组合就方便了。
载自:http://www.wentrue.net/blog/?p=91
其实我个人认为作者讲得不是很好,我研究vim剪贴板就两个目的:
1) 将vim中的数据复制到系统剪贴板
2)粘帖上上次复制的内容( 我复制了一行,现在删除一行,想要粘帖之前复制而不是现在删除的这一行)
问题1:
先选中要复制的数据 "+y( 1.输入“号 2. 输入+ 号,3.输入字母y, + 代表系统剪贴板,意思就是将当前的内容定向复制到系统剪贴板),要使用刚复制的内容,只需要ctrl+v了,很方便。
顺便提一下,将系统剪贴板的内容复制到vim中,只需要在normal模式下输入"+p即可,你应该懂的。
问题2:
默认复制和粘帖都发生在"0 剪贴板中,我们只要将数据复制到其他剪贴板中就不会被马上替换掉了,使用方法:先选中要复制的内容,然后“2y(以2号剪贴板为例)就复制到2号剪贴板中了,粘帖的时候只需要在normal模式输入"2p即可。
-------------------------------------------------
wzy1222 2014.01.04总结:
:reg 命令 可以看到所有剪贴板的内容。(gvim 才能看到 "+ 剪贴板)
“”是当前剪贴板 , “+是系统剪贴板 , 其它都是些普通的剪贴板。
复制过程中,缩进如果出问题:
:set paste 去除缩进模式 ,此时再来复制就不会有缩进格式问题,复制完后再
:set nopaste 还原缩进模式。
行号去去行号 :set nu :set nonu
linux复制与粘贴快捷键
1. 在终端下:
复制命令:Ctrl + Shift + C 组合键.
粘贴命令:Ctrl + Shift + V 组合键.
2. 在控制台下:
复制命令:Ctrl + Insert 组合键 或 用鼠标选中即是复制。
粘贴命令:Shift + Insert 组合键 或 单击鼠标滚轮即为粘贴。