vim中的寄存器
vim中默认有多个寄存器,其中使用命令y
和p
是将内容复制粘贴到vim内部剪切板中,即意味着不能用到其他程序中。
“* 和 “+这两个寄存器与系统相通,若想将vim中的内容复制到其他程序中,需要用到这两个寄存器。注意有的vim中没有上述寄存器,fedora下参照问题How to install vim with clipboard support on Fedora?解决。
打通全局复制粘贴
了解到vim中寄存器的情况后,可在.vimrc中做如下设置,使用”Ctrl+A”进行全选,“Ctrl C”,“Ctrl V”进行全局复制粘贴。
map <C-A> ggVG " 映射全选 ctrl+a
map! <C-A> <Esc>ggVGY
map <F12> gg=G
map <C-c> "+y " 映射复制到系统剪切板
nmap <C-v> "+gp " 映射粘贴
imap <C-v> <Esc>"+gp " 映射粘贴
注意:使用上述设置后,因为Ctrl V占用了进入Visual Block模式的快捷键,所以今后进入Visual Block模式时,需先按v进入Visual模式,再按Ctrl V即可。