【Linux】vim三种模式的切换、常用命令总结

vim是一个非常强大而且常用的Linux文本工具,因为命令太多了记不住,故做个记录

1.模式

vim主要有三种模式,分别是命令模式、输入模式、末行模式,三者切换关系如下

【Linux】vim三种模式的切换、常用命令总结
默认就是命令行模式,按i、a或o进入编辑模式,再按ESC返回到命令行模式。在命令行模式输入冒号切换到末行模式,再按ESC又返回到命令行模式。编辑模式和末行模式之间不能直接切换,只能通过命令行模式切换

2.命令行模式

命令 说明
x、X x是删除下一个字符,X是删除上一个字符
如果想删除10个字符,那就" 10x "
dd 剪切(删除)光标所在行
如果想要删除20行,那就 " 20dd "
yy 复制光标所在行
如果想要复制20行,那就 " 20yy "
p、P p是粘贴到下一行,P是粘贴到上一行
u 撤销
Ctrl+r 反撤销
.(小数点) 重复上一个动作
gg、G gg是回到第一行,G是回到最后一行
如果想要回到第20行,那就 " 20G "
y1G、yG y1G是复制当前行前面的所有数据,yG是复制当前行之后的全部数据
d1G、dG d1G是删除当前行前面的所有数据,dG是删除当前行之后的全部数据
v、V、Ctrl+v v是光标起始和结束之间的文本会被选中,V是光标起始和结束之间的所有行被选中,Ctrl+v是光标起始和结束之间构成的矩形区域被选中

3.编辑模式

命令 说明
i、I i是从光标所在位置开始输入,I是光标所在行第一个非空白字符开始输入
a、A a是从光标所在的下一个字符开始输入,A是从光标所在行的最后一个字符开始输入
o、O o是从光标所在行的下一行新的一行开始输入,O是从光标所在行的上一行新的一行开始输入
r、R r是取代光标所在的字符一次,R是依次取代光标所在字符

4.末行模式

命令 说明
:w 保存
:q 退出
:wq 或 ZZ 保存并退出
:q! 或 ZQ 不保存退出
:set nu 显示行号
:set nonu 隐藏行号
:/搜索的文本 搜索
:%s/要替换的字符/替换后的字符/g 全局替换文本