尽管 VS Code 自带的快捷键已经足够强大 ,但存在一个问题:使用方向键是一个有些“反人类”的行为,双手放在键盘上,如果只敲击字母,那么便无需移动手腕;如果需要去敲击方向键,则需要移动手腕或者小臂。Vim插件让绝大部分敲击集中在字母的区域,让操作更加快捷、舒适。本文我将推荐我常用的Vim操作。
•Vim 插件安装•Vim 基础•VS Code 中常用 Vim 组合逻辑
下载 Vim 插件
如上图,下载 Vim 插件。这里需要注意,强烈推荐 不使用Vim自带的组合快捷键 Ctrl ,因为其会覆盖掉 VS Code 本身的快捷键以及其他插件的快捷键 。
取消勾选 useCtrlKeys 设置
如上图,可以在 Settings 中搜索 useCtrlKeys 配置,并取消勾选。
vim scroll
值得注意的是,我们依然可以使用 Ctrl + u
和 Ctrl + d
实现上下滚动页面,滚动行数默认为半页大小。
这里要介绍的是 Vim 基础中的基础,但还是没有 Vim 基础的初学者也可以去 B 站搜索 Vim 相关的教程再巩固一下(我之后也可能录视频)。
vim 基础
如上图:
•Vim 中默认是 normal 模式,此时敲击字母是在敲击命令,而非编辑文本;输入 i
进入 insert 模式,此时敲击字母才是输入字母•insert 模式下,退出键 Escape
回到 normal 模式•normal 模式下,hjkl
分别是左下上右
vim 中 a i o 操作
如上:
•normal 模式下,Shift + a
(以后记作A
)移到行末,并转为 insert 模式;I
是行前•normal 模式下,o
是下插一行,并跳转
vim 中 w b 操作
如上:
•normal 模式下,w
是向前移动一个单词,b
则是向后移动一个单词
vim 中的复制粘贴
如上:
•normal 模式下,d
是开启剪切模式,因此,dw
则是剪切一个单词;dd
是剪切一行•normal 模式下,y
则是复制,而p
是粘贴
vim 中 s x
如上:
•normal 模式下,s
是删除当前光标所指并转为 insert 模式,x
是删除并且不转换
vim 中 g
如上:
•normal 模式下,15gg
是跳转到15
行
vim 中的 visual
如上:
•normal 模式下,是开启选中 visual 模式
Vim 爱好者常说:Vim是一种逻辑,而非死记硬背快捷键(我还算不上 Vim 爱好者,这句话不是我说的,是 Linux 社区的一些朋友们说的)。
我对于 Vim 『逻辑』的理解,大概如下:
•大小写是一种相反的逻辑•VS Code 中一些 Ctrl 与滚动•i(
意味着在括号里
展开的解释如下文。
int foo_xyz = 1; ^
我们知道,当光标在_
处时,想要删除 _xyz
,那么就要首先 找到最近的z的位置,然后删除这个区间内的东西。 在 vim 中,则是输入 dfz
来表达, fz
则是 找到 z 的意思 。
vim 中 f 与 F
那么,向前查找是什么呢?答案是大写的 F
,具体例子如上图。
vim 中 o 与 O
如上,用 o
可以很轻松地向下插入一行,而用 O
则是向上插入一行。
vim 中的 []
如上,使用 Shift + []
是以「代码块」为单位跳行。
vim 中 Ctrl + []
如上,Ctrl + []
实现缩进的调整。这里结合了 visual 模式。
vim 中滚动
如上,[[
跳到文件首行,而 ]]
则是行末。
vim 中 H L M z
如上,H
是到屏幕的顶部,L
是屏幕的底部,M
是屏幕的中央;而 zz
是『将光标放到屏幕中央,且不移动光标的位置(滚动屏幕)』,zt
是将光标放到顶部,zb
是底部。
print(f"what {s}?")
如上,当我们想清空 print()
函数括号内的东西,我们「有逻辑地」告诉 vim 即可。把光标移到括号内,输入 ci(
或 ci)
,其中 i(
是『在括号内』。
一种逻辑
如上,不仅是 c
操作,也不仅仅是 ()
,对于 ""
、[]
等都适用。
此外,还有很多逻辑可以组合,比如:j是向下跳转一行,那么 10j 就是向下10行。 此外,/
查找功能在 vs code 中同样适用。但是,我更喜欢 vs code 自带的 ctrl + f
查找, vs code 自带的组合键还有哪些妙用呢?我们下回分解。
好文章值得 点赞 在看 →
关于 vim ,一定还有其他妙用,欢迎留言你的常用高效操作~
此外,推荐给大家推荐一本 vs code 的黑宝书,虽然我一般不建议购买「软件类的工具书」,但是这本书还涵盖了 vs code 的社区、历史,由微软的工程师韩老师撰写。因为我是 vs code 社区中比较积极的志愿者,所以有幸得到了本书的签名款。非常全面,vs code 只有你想不到,没有做不到(做不到去 github 上提 issue 呀,马上就可以做到了),读下来还是非常不错的。我这里提供一个链接,希望大家理性消费(毕竟挺厚的)。