试过那么多次,这次一定要把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个空格