试过那么多次,这次一定要把vim用熟!!!!!
2019年1月19日,记第一次爱上Vim(Visual Studio中的viemu)

六种基本模式

基本模式(6):普通模式插入模式可视模式、选择模式、命令行模式、Ex模式。
派生模式(5):操作符等待模式、插入普通模式、插入可视模式、插入选择模式、替换模式

模式名称 英文名 描述
命令模式 Command-Mode 用于输入指令,如:保存、运行、切换标签、切割屏幕等
插入模式 Insert-Mode 也即编辑模式,用于编辑文本,其他编辑器大多默认该模式,大多数新用户希望文本编辑器编辑过程中一直保持这个模式
可视模式 Visual-Mode 相当于高亮选取文本后的普通模式
普通模式 Normal-Mode 用于查看文本,也可复制、粘贴、撤销、重做等

其它模式->正常模式

Esc

正常模式->插入模式

a\A,s\S,o\O,i\I......

正常模式->命令模式

:

正常模式->可视模式

指令 描述
v 可视模式
Ctrl+v 可视块模式
Shift+v 可视行模式

常用功能

多行注释

1.Ctrl+v进入可视模式
2.选择行
3.I
4.输入注释符(“//“或”#”等等)
5.Esc
以上步骤不可缺(尤其最后一步)!!!!

删除多行注释

1.Ctrl+v进入可视模式
2.选定要取消注释的多行(只选择注释符列)
3.按下”x”或者”d”.

删除、复制、剪切

1.normal模式下,yy复制整行,nyy为复制n行,10,15y是复制10到15行,10,15 move 20把10到15行移动到20行后面
2.dd剪切整行,ndd为剪切n行,10,15y是剪切10到15行,10,15d删除10到15行,10,15 move 20把10到15行复制到20行后面
3.vim中d表示删除,实际上是剪切,要想真正删除使用_d即可。

查找

normal模式下按下/即可进入查找模式,输入要查找的字符串并按下回车。 Vim会跳转到第一个匹配。按下n查找下一个,按下N查找上一个。
1.\c表示大小写不敏感查找,\C表示大小写敏感查找。例如:/foo\c
2.查找当前单词:normal模式下按下*即可查找光标所在单词(word),要求每次出现的前后为空白字符或标点符号。例如当前为foo,可以匹配foo bar中的foo,但不可匹配foobar中的foo。 这在查找函数名、变量名时非常有用。

按下g*即可查找光标所在单词的字符序列,每次出现前后字符无要求。 即foo bar和foobar中的foo均可被匹配到。
3.查找并替换:s(substitute)命令用来查找和替换字符串。语法如下:{作用范围}s/{目标}/{替换}/{替换标志}
例如:%s/foo/bar/g会在全局范围(%)查找foo并替换为bar,所有出现都会被替换(g)
4.作用范围:作用范围分为当前行、全文、选区等等。
当前行:s/foo/bar/g
全文:%s/foo/bar/g
选区,在Visual模式下选择区域后输入: Vim即可自动补全为 :'<,'>
:'<,'>s/foo/bar/g
2-11行:5,12s/foo/bar/g
当前行.与接下来两行+2:.,+2s/foo/bar/g
5.替换标志:i表示大小写不敏感查找,I表示大小写敏感:%s/foo/bar/i(等效于\C\c).c表示需要确认:%s/foo/bar/gc
参考这里

其他

1.普通模式下,I是行首,A是行尾,a是从光标后插入,i是光标前插入,O从该行上一行新增一行,o从该行下一行新增一行
2.d剪切,y复制,p粘贴
3.全选:普通模式下:ggVG
4.全部复制:普通模式下:ggyG
5.全部删除:普通模式下:dG
解释:
gg是让光标移到首行,在vim才有效,vi中无效
v:是进入Visual(可视)模式
G:光标移到最后一行
选中内容以后就可以其他的操作了,比如
d删除选中内容
y复制选中内容到0号寄存器
6.字符串次数统计:普通模式下:%s/需要统计的字符串(无需引号)//gn
7.代码移动:普通模式下:60,70 > <四个空格>表示60到70行右移4个空格