最近这段时间坚持了vim的使用,我在个人IDEA里面加了一个插件,能够支持vim。node
而后不论是IDEA仍是Vim都有本身的按键,并且都很好用,因此我就总结下在IDEA下的vim使用命令vim
固然,都是原生命令,我总结的是我本身常常用到的,我也是刚开始使用,还不太熟练。markdown
记载在博客之后就不用去搜索去查了。编辑器
因此本文不是vim命令教学,而是介绍IDEA和VIM的混用。学习
本文关于Vim的几个模式就不介绍了,若是有读者想借鉴个人习惯,确定是有vim基础的。spa
我所介绍的都是根据我实际状况所须要用的,不会介绍彻底部。插件
1. 经常使用的插入命令3d
其实这几个都不是必须的,但也是要会用的,由于你大能够在正常状况下移动到想要编辑的地方,而后再打开VIM编辑器。code
像在光标下插入新行,你用IDEA的shift+Enter也能够,因此我想说的是IDEA和VIM的东西你能够混着用,对本身效率有提高就能够了blog
2. 经常使用的定位命令
:set nu
//取消行号
:set nonu
行的移动,关于行的移动仍是会用到,通常像移动到第n行,或者视图选择时想作全选操做
gg
G
nG
0
//其实你也能够用Home键 因此说我买的键盘至少是87键的,不是说非要什么都用vim的命令,只要能达到目的都ok
$
单词的移动,单词的移动也用的比较多
w
b
e
在一行代码里,能够定位到某个字母,好比
上面的代码里,光标在行首,我想定位到node那个单词,我能够按两下w,也能够输入2w,这二者的意思都是同样的
可是,还有一种方法,就是直接定位到某个字母上,那就是
f字母 //好比在上面的例子中,我想移动到n,因此就输入 fn
//你先把光标移动到括号上 % //而后按住%就能够匹配到对应的另外一半
3.经常使用的剪切粘贴复制命令
在这里你也是能够混着用,好比删除一行代码,你能够用IDEA的快捷键也能够用vim的dd,均可以,看你用哪一个爽罢了
yy
nyy
同理,你也能够粘贴5次,命令就是5p
有时复制多行时,因为行数相差大,不容易算出来要复制多少行,这时就用视图来帮忙,好比下边的示例
先输入命令 v ,表明开启能够视模式选择
而后再输入 272G 表明定位到272行
而后再输入y,就能够快速的复制多行了。这可比你算出272-251+1快多了吧。
:5,13 copy 58
//或者也能够复制单行,这样的写法前提都是光标不移动的,更方便
:5 copy 58
:24,36 y //复制24到36行而不作其它事 同理删除剪切能够是:24,36 d
//删除一行,虽然看起来是删除,但其实说是剪切更准确,由于你输入p就会把它粘贴出来了 dd //删除n行,同理也能够参考多行复制同样实现大范围删除 ndd
//删除第n行 :nd
4. 替换和查找
这里介绍一个命令:c命令,c的做用能够理解为:删除->剪切->进入插入模式
因此我常常用到c命令的组合是 cw 或者 ce,顾名思义,就是删除了一个单词而后准备写一个新的单词,好比
这里我想把node换成别的,输入cw
这样就进入插入模式,就能够输入新的单词了
还有一种状况是,当一串字符串,你想修改中间部分时,cw行不通,这时能够利用前面学的f命令来组合,好比
我已经移动到l字母,若是我输入cw,它会直接把loveyou都删掉,而我只是想改掉love这个单词,能够输入cfe
这时就会把love删除并进入插入模式了。从这里能够看出vim的命令组合真的很强大,想要熟练就要多使用。
/查找内容 //而后输入n就表明跳转到下一个匹配的内容,输入N跳转到上一个匹配的内容
:{做用范围}s/{目标}/{替换}/{替换标志} //例如:%s/love/hate/g会在全局范围(%)查找love并替换为hate,全部出现都会被替换(g)。
做用范围分为 当前行 , 全文 , 选区 三个范围
当前行 :s/love/hate/g 全文 :%s/ove/hate/g 选区 在Visual模式下选择好区域后,输入 : ,vim就会自动补全为 :'<,'> :'<,>'s/love/hate/g
也能够指定行范围,好比4到80行
:4,80s/love/hate/g
或者在当前行以及接下来的5行
:.,+5s/love/hate/g
甚至能根据需求寻找解决方案,好比我写markdown时须要给选择题的选项后面都加上两个空格以便换行
//光标在A选项的行
:.,+3s/$/空格空格
//上面的$表明末尾,而后后一个/的内容表明插入的内容
//由此能够得知,将$换成^就是在开头插入内容了
不过说实话,通常用得多的是 当前行 全文 指定行范围 这三种,由于这三种已经能够知足其他几种方式了
至于命令最后面的/g的意思是替换标志,g表明全局(global)
其他替换标识
i表示大小写不敏感查找,I表示大小写敏感
c表示须要确认
当你替换标志包含c时,每匹配一次单词,都会弹出
replace with 所更改的单词 (y/n/a/q/l/^E/^Y)?
按下表示替换,表示不替换,表示替换全部,表示退出查找模式, 表示替换当前位置并退出。与是光标移动快捷键
因此你能够输入
ynaql^E^Y
:4,80s/love/hate/gci
这句命令的意思是,在4到80行内,不分大小写的查找love这个单词,并每次找到后,让你输入确认命令以便于替不替换成hate这个单词
5. 其它一些用到的命令
u
ctrl+r
IDEA的列操做,操做的是同一个部分
vim的列操做,是你选中的区域内都会被更改
因此二者用哪个取决于你的需求了
//vim的列操做 1.光标定位到你想要操做的地方。 2.CTRL+v 进入Visual模式,选取操做范围 3.SHIFT+i(I) 输入要插入的内容。 4.ESC 按两次,会在你选中的操做范围内出现你插入的内容
目前我经常使用的vim命令就是以上的命令,这只是vim的冰山一角,然而却能让我脱离鼠标好多了,
因此可见vim的强大,固然,vim很强大,IDEA也很强大,因此二者结合就更强大了。
我也正在坚持使用vim,掌握百分百的vim命令是不可能的,vim的使用方式实在是太多了,
可是仅仅是我上面写的那几点命令就已经够用好多了,我也将会不断的学习更高级的vim操做,
总之就是要变成一个vim党,冲鸭!鼠标什么的扔掉好吧哈哈哈哈