在Linux的vim中进行文本的操作时经常会用到复制与粘贴,但是Linux系统中的复制与粘贴方式与Windows系统中有很大的区别,同时,在进行复制与粘贴时也会用到其它一些对光标的基础操作,现总结如下:
一、基础操作
1、显示行号
:set number 或 :set nu → 显示行号
:set nonumber 或 :set nonu → 隐藏行号
2、文本的高亮选中
(1)在开始的地方按 v 进入可视模式,接着移动光标或使用“一、3”中的方法对光标进行操作即可;
(2)在开始行按 V 进入可视模式,接着移动光标或使用“一、3”中的方法对光标进行操作即可,使用大写 V 可以对正行进行操作。
(3)在开始的地方按 v ,或在开始行按 V 进入可视模式,按G标亮从起始位置或起始行到最后一行所有的文本。
高亮查找
例如“/”,从上往下查找;
例如“?”,从下往上查找;
3、u →撤销;Ctrl + r → 恢复撤销
4、光标的移动
G | 移至最后一行首 |
gg | 移至第一行首 |
nG | 移至第n行首 |
n+ | 下移n行 |
n- | 上移n行 |
Home/0 | 移至当前行行首 |
^ | 移至当前行第一个字符前 |
End | 移至当前行行末 |
n$ | 移至当前行后的第n行行末 |
I | 将光标定位到当前行行首并插入 |
A | 将光标定位到当前行行末并插入 |
i/a | 直接插入 |
二、复制与粘贴最基本的操作
1、纯鼠标操作:和Windows系统一样,选中文本后按鼠标右键复制,鼠标移到要粘贴的地方再按鼠标右键粘贴。
2、键盘指令操作方法:
① 将光标移动到要复制的文本开始的地方,按v
进入可视模式;
② 将光标移动到要复制的文本的结束的地方,按y复制。此时vim会自动将光标定位到选中文本的开始的地方,并退出可视模式;
③ 移动光标到需要粘贴的地方,按p
粘贴。
3、鼠标与键盘快捷键结合的操作方法:
① 利用“一、2”中的方法复制文本,或者用鼠标选中需要复制的文本,按Ctrl+insert复制;
② 利用“一、2”中的方法粘贴文本,或者将光标移动到需要粘贴的地方,按shift+insert粘贴。
三、复制、剪切或删除的多行操作
1、:n1,n2 copy n3 或 :n1,n2 co n3
将第n1行到第n2行的内容复制到第n3行(从第n3行的下一行开始粘贴)
:n1,n2 move n3 或 :n1,n2 mo n3
将第n1行到第n2行的内容剪切到第n3行(从第n3行的下一行开始粘贴)
2、光标移动到结束行(或起始行),ma
光标移动到起始行(或结束行),输入y’a
光标移动到需要复制的行,输入p,行前复制则输入大写P
3、光标移动到起始行,输入ma
光标移动到结束行,输入mb
光标移动到粘贴行,输入mc
然后输入:’a,’b, co ‘c 把co换成m就是剪切
若要删除多行,则输入 :’a,’b de
4、光标移到起始行,输入yG → 复制当前行开始直至最后一行的所有行
四、复制命令总结
y | 在使用v模式选定了某一块的时候,复制选定块到缓冲区用 |
yy | 复制整行(nyy或者yny ,复制n行,n为数字) |
y^ | 复制当前到行头的内容 |
y$ | 复制当前到行尾的内容 |
yw | 复制一个word (nyw或者ynw,复制n个word,n为数字) |
yG | 复制至档尾(nyG或者ynG,复制到第n行,例如1yG或者y1G) |
五、删除命令总结(此处的删除实际指的是剪切操作)
dd | 删除一行 |
ndd | 删除以当前行开始的第n行 |
dw | 删除以当前字符开始的第一个字符 |
ndw | 删除以当前字符开始的第n个字符 |
d$ 或 D | 删除以当前字符开始的一行字符 |
d) | 删除到下一句的开始 |
d} | 删除到下一段的开始 |
d回车 | 删除2行 |
dG | 删除从当前行开始到最后一行 |
注:“四”、“五”的表格中复制和剪切的很多命令是通用的,并没有列全,可以类比使用。
六、粘切板有关知识
1、vim有12个粘贴板,分别是0、1、2、…、9、a、“、+;用:reg命令可以查看各个粘贴板里的内容。在vim中简单用y只是复制到“(双引号)粘贴板里,同样用p粘贴的也是这个粘贴板里的内容;
2、要将vim的内容复制到某个粘贴板,需要退出编辑模式,进入正常模式后,选择要复制的内容,然后按”Ny完成复制,其中N为粘贴板号(注意是按一下双引号然后按粘贴板号最后按y),例如要把内容复制到粘贴板a,选中内容后按”ay就可以了,有两点需要说明一下:
3、“号粘贴板(临时粘贴板)比较特殊,直接按y就复制到这个粘贴板中了,直接按p就粘贴这个粘贴板中的内容;
4、+号粘贴板是系统粘贴板,用”+y将内容复制到该粘贴板后可以使用Ctrl+V将其粘贴到其他文档(如firefox、gedit)中,同理,要把在其他地方用Ctrl+C或右键复制的内容复制到vim中,需要在正常模式下按”+p;
5、要将vim某个粘贴板里的内容粘贴进来,需要退出编辑模式,在正常模式按”Np,其中N为粘贴板号,如上所述,可以按”5p将5号粘贴板里的内容粘贴进来,也可以按”+p将系统全局粘贴板里的内容粘贴进来。
3)多文件的并发操作
该操作便于多文件相互复制粘贴等。
命令:vim 文件名1 文件名2 文件名3……
命令:“:args”在底部显示当前打开的多个文件的名字,【当前文件的名字】;
命令:“:next”切换显示下一个文档;
命令:“:prev”切换显示上一个文档;
命令:“:first”切换显示第一个文档;
命令:“:last”切换显示最后一个文档。
:s/被替换对象/新对象/gc,提示后按y即完成替换。
七、参考资料
1、https://www.cnblogs.com/MMLoveMeMM/articles/3707287.html
2、https://www.cnblogs.com/GlassHour/p/5503973.html