2023年11月25日发(作者:)
vim复制与粘贴
⽤vim写代码时,经常遇到这样的场景,复制多⾏,然后粘贴。
这样做:
1. 将光标移动到要复制的⽂本开始的地⽅,按进⼊可视模式。
v
2. 将光标移动到要复制的⽂本的结束的地⽅,按y复制。此时vim会⾃动将光标定位到选中⽂本的开始的地⽅,并退出可视模式。
3. 移动光标到⽂本结束的地⽅,按粘贴。
p
⼀、多⾏
dd
删除⼀⾏
ndd
删除以当前⾏开始的n⾏
dw
删除以当前字符开始的⼀个字符
ndw
删除以当前字符开始的n个字符
d$、D
删除以当前字符开始的⼀⾏字符
d)
删除到下⼀句的开始
d}
删除到下⼀段的开始
d回车
删除2⾏
⼆、复制多⾏
任务:将第9⾏⾄第15⾏的数据,复制到第16⾏
⽅法1:(强烈推荐)
:9,15 copy 16 或 :9,15 co 16
由此可有:
:9,15 move 16 或 :9,15 m 16 将第9⾏到第15⾏的⽂本内容到第16⾏的后⾯
⽅法2:
光标移动到结束⾏,ma
光标移动到起始⾏,输⼊y'a
光标移动到需要复制的⾏,输⼊p,⾏前复制则输⼊⼤写P
⽅法3:
把光标移到第9⾏ shift + v
再把光标移动到第15⾏ ctrl + c
再把光标死去到第16⾏ p mysql
⽅法4:
光标移动到起始⾏,输⼊ma
光标移动到结束⾏,输⼊mb
光标移动到粘贴⾏,输⼊mc
然后输⼊:'a,'b, co 'c 把co换成m就是剪切
若要删除多⾏,则输⼊:'a,'b de
vi设置⾃动缩进:set smartindent
vi设置显⽰⾏号:set number 或 set nu
Vim中如何全选并复制
全部删除:按esc后,然后dG
全部复制:按esc后,然后ggyG
全选⾼亮显⽰:按esc后,然后ggvG或者ggVG
vim如何与剪贴板交互(将vim的内容复制出来)
习惯了在windows环境各个应⽤程序之间如UltraEdit,记事本,eclipse之间ctrl+c,ctrl+v进⾏复制粘贴的你,如何在vim与别的windows应⽤
程序之间拷贝粘贴呢?
当然你可以在vim⾥选择⽤⿏标,选中⼀块⽂字然后右键复制,再到应⽤程序⾥ctrl+v粘贴,只不过这样效率就差多了。
更好的做法是,在vim中使⽤ "*y 使⽤进⾏复制,然后在应⽤程序中⽤ctrl+v粘贴。
更好的做法是,在vim中使⽤ "*y 使⽤进⾏复制,然后在应⽤程序中⽤ctrl+v粘贴。
从应⽤程序到vim则在应⽤程序中使⽤ctrl+c复制,在vim中使⽤shift+insert粘贴。
如:
"*yy复制⼀⾏
"*y2w复制⼆个词
……
实现的原理是:
" 表⽰使⽤寄存器
"* 表⽰使⽤当前选择区
我个⼈推荐使⽤ctrl+insert复制,shift+insert粘贴。
vim有多个剪贴板,其中就包括了系统剪贴板。使⽤命令:reg可以看到各个剪贴板的内容。其中“”表⽰当前使⽤的剪贴板,“0-9是历史剪贴
板,“#就是系统剪贴板了(你可以在系统⾥拷贝⼀些东西,看是不是会出现在“#剪贴板⾥)。在vim中使⽤y可以把内容拷贝到“”号剪贴板,
继续y会把新的东西放⼊“”,⽽原来“”的东西就会被压⼊“0-9的各个历史剪贴板中。X11系统下还有⼀个“*的剪贴板对应中键拷贝粘
贴,windows不知道有没有。
解决第⼀个问题:
“+y 把选中内容拷贝到”+号剪贴板,即系统剪贴板
“+p 把系统剪贴板的内容粘贴到vim,这⼀个⽤shift+insert也可完成
解决第⼆个问题:
“0p 可以把已经被挤到”0剪贴板的内容A重新粘贴出来
嫌长的做⼀个map,映射到某个功能键或组合就⽅便了。
发布评论