之前的一次在服务器上使用vim修改一些nginx和其他配置文件的经历,让我对vim这种抛弃鼠标的编辑操作方式萌生了很大的兴趣,毕竟右手不用来回的左右移动真的要轻松很多😉
但是在日常开发中发现vim的使用场景并没有这么多(毕竟不可能随时在服务器上修改文件),后面在了解过程中发现vsCode和webStorm中也有对应的插件,然后就开始了在日常开发中使用vim操作方式进行开发的整活之旅。
但是按照自己的经历不建议像一上来就高强度的直接抛开鼠标或者直接扣掉上下左右键来达到必须使用vim指令来进行开发的模式,这样前期效率真的很低下🤣,可能过了阵痛期会好一点。
记录一下自己在webStorm中使用Vim插件的一些常用的命令(只是部分,使用过程中用到的),vim真的强大,越了解越觉得强。
命令行模式(Command mode)
ESC | CRTL + C: 返回到命令模式,这里我使用CRTL + C多一些,手的移动距离更小
移动光标
h:向左移动一个字符
j:向下移动一行
k:向上移动一行
l:向右移动一个字符
都可以组合使用,比如最基本的组合2k就是向上移动两行,4h就是向左移动 4 个字符。
Ctrl+d:向下滚动半屏
Ctrl + u:向上滚动半屏
CTRL + F向前滚动一屏
CTRL + B:向后滚动一屏
0:移动到行首同g^
$:移动到行尾同g_
w:移动到下一个单词的开头
e:移动到下一个单词的结尾
b:移动到上一个单词的开头
G:移动到文件末尾
gg:移动到文件开头
%:括号之间跳转
快速跳转到某行
100G: 跳转到 100 行
:100: 跳转到100行
滚动页面
CTRL + F向前滚动一屏
CTRL + B:向后滚动一屏
搜索文件内容
命令模式下直接/ + 搜索的内容,使用下面两个命令滚动,个人觉得比编辑器自带的搜索方便一点
n:在同一方向上查找下一个匹配项
N:在相反方向上查找下一个匹配项
命令行模式中进入插入模式
o: 向下新开一行插入光标,实际开发中比较常用
O: 向上新开一行插入光标
a: 从当前光标的后面进入插入模式,比较常用
A: 从当前光标的行尾进入插入模式
c: 替换选中的内容进入插入模式,相当于删除选中内容然后使用i进入插入模式,常用的修改变量名直接选中变量进行修改, 常用
C: 删除当前光标位置至行尾的内容然后进入插入模式
i: 当前光标前面进入插入状态
I: 从当前行首有内容的位置进入插入模式
删除内容
dw:把光标停留在需要删除的单词前面,按下d w
de: 把光标停留在需要删除的单词前面
d$: 从当前光标处删除到行末
dd:删除整行
%d: 删除全部
撤销和放弃撤销
u:撤销上一步的更改操作同CTRL + z
Ctrl + R: 撤销上一步的撤销操作同CTRL + SHIFT + z
自动补全模式下上下选择
TRL + N: 向下选择补全
CTRL + P: 向上选择补全
转到定义地方
CTRL + ]: 转到详细定义(直接跳转)
gd : 跳转到局部变量或方法的定义。
查看快速文档
SHIFT + k: 查看快速文档,vscode中好像使用gh可以,webstorm中可能没有配置,效果和鼠标hover到变量上的悬浮信息一致
返回上一次光标的位置
Ctrl + o: 返回上一次光标的位置
Ctrl + t : 返回上一个跳转位置。
Ctrl + i : 向前跳转编辑历史记录
折叠和展开代码块
zc, zo : 折叠和展开代码块。
zC, zO : 递归折叠和展开代码块。
进入选择模式
v: 进入选择模式,同鼠标选中的效果,可以使用v选中内容然后d删除
总结一下
......等等等等,命令太多了,组合命令用起来也特别方便,但是现在还不是很熟练使用组合命令。
我是在实际开发场景中遇到了需要使用的场景,就会去找一下vim对于这种情况有没有什么快捷命令,或者说有没有什么更加简便的方式。
对于刚开始使用的时候,知道一些基础命令就行了,了解一下复杂的命令,不用死记硬背,当在实际使用中发现要达成想要的操作有一些复杂的时候,这个时候可以带有目的性的去找一下vim的命令,这样记忆起来会事半功倍。
虽然我现在还是会鼠标和键盘一起用,但是觉得vim用起来真的很丝滑🤣