Vim的复制粘贴命令无疑是y (yank),p(paster),加上yy,P
w 跳转到下个word,W:跳转到上个word f 某行正向查找并跳转 F: 反向....
然后部分双写的字母有行操作:
yy 复制一行 dd 删除一行
所以,
p就是在当前光标后粘贴,P就是在当前光标前粘贴
另外,说完p,其实还有几个命令有时也是很有用的
gp,和p的功能基本一致,只是粘贴完,它会把光标移动至粘贴内容之后;gP同理 :pu[t] ,注意,这个是在命令界面输入的pu/put,它的意思是把x寄存器的内容粘贴到下一行
vim强大之处之一就是它自带一堆寄存器,每个寄存器独立使用,你可以在不同寄存器中存储不同数据,命令,你可以把这个想象成一个加强版的剪贴板,当然它的功能不止剪贴板这么简单。如果你想看vim的官方文档有关部分:
:help registers
根据官方手册:vim有9种寄存器
There are nine types of registers: registers E354
1. The unnamed register ""
2. 10 numbered registers "0 to "9
3. The small delete register "-
4. 26 named registers "a to "z or "A to "Z
5. four read-only registers ":, "., "% and "#
6. the expression register "=
7. The selection and drop registers "*, "+ and "~
8. The black hole register "_
9. Last search pattern register "/
聊聊寄存器的基本操作把
现在输入命令,你就可以查询一下目前寄存器的情况
:reg
"ap 粘贴字母a寄存器内容 "1y 把选取内容复制到数字寄存器1
细心的人已经发现我重点标注的寄存器部分了,就是那个选择及拖拽寄存器,这就是系统的剪贴板,我们通常使用的ctrl+c ctrl+v 的内容就保存在这个寄存器中,所以你要把需要复制的内容放在+寄存器中,就可以在gui界面中用粘贴或ctrl+v粘贴了,同理,粘贴在vim中也一样
"+y 复制到系统剪贴板 "+p 粘贴 "+gp 粘贴并且移动光标到粘贴内容后
但是光是输入命令"+p就已经让人觉得很麻烦了,这时候,vim的map功能就又可以大显神通了,我们只需要把“+y 和 ”+gp map到你喜欢的快捷键上即可:
首先打开vimrc(如果没有,请创建一个)
vim ~/.vimrc
nmap <c-v> "+gp nmap <c-c> "+y
所以,我一般修改成:
nmap <leader>v "+gp nmap <leader>c "+y
至于<leader>是什么按键,就可以按照你的喜好来拉,我的是‘,‘
let mapleader=","
ps.说一下,我用的是nmap,说明这个命令只有在normal情况下才生效,在insert模式下是不生效的,为什么要这样设置呢?因为有时候你确实需要输入<leader>c/v的内容,比如,c ,v ,而且,vim主要操作我觉得还是应该在normal模式下,这才是vim的高效的原因。
原文地址:http://blog.csdn.net/hk2291976/article/details/42196559