当前位置: 首页 > 科技观察

VSCode中的Vim操作

时间:2023-03-13 01:41:24 科技观察

本文转载自微信公众号《吹笛蛋窝》,作者吹笛蛋。转载本文请联系派珀蛋巢公众号。虽然VSCode自带的快捷键足够强大,但也存在一个问题:使用方向键有点“反人类”的行为。将手放在键盘上。如果你只打字,你不需要移动你的手腕;如果你需要点击箭头键,你需要移动你的手腕或前臂。Vim插件让大部分的打字都集中在字母区域,让操作更快更舒服。在本文中,我将推荐我常用的Vim操作。目录Vim插件安装Vim基础知识VSCode常用Vim组合逻辑Vim插件安装与下载Vim插件如上图,下载Vim插件。这里需要注意的是,强烈建议不要使用Vim自带的快捷键组合Ctrl,因为它会覆盖掉VSCode本身的快捷键和其他插件的快捷键。如上图取消勾选useCtrlKeys设置,您可以在设置中搜索useCtrlKeys配置并取消勾选。Vimscroll值得注意的是,我们仍然可以使用Ctrl+u和Ctrl+d来上下滚动页面,滚动行数默认为半个页面大小。Vim基础这里介绍的是Vim基础,不过还没有Vim基础的初学者也可以去B站搜索Vim相关的教程巩固一下(以后可能还会录视频)。vim的基本情况如上图所示:Vim默认为普通模式。此时,输入字母就是输入命令,而不是编辑文本;输入i进入插入模式,此时输入一个字母就是输入一个字母。在nsert模式下,退出键Escape返回普通模式。在普通模式下,hjkl是vim的左、下、上、右aio。操作如上:在普通模式下,Shift+a(以下简称A)移动到行尾,转为插入模式;普通模式下i是行首,o是插入一行,在vim中跳转到wb操作如上:普通模式下,w是向前移动一个字,b是向后移动一个字在vim中复制粘贴如上:普通模式下,d是开启剪切模式,所以dw是剪切一个单词;dd在普通模式下是剪切一行,y是复制,p是在vim中粘贴sx如上:在普通模式下,s是删除当前光标,转为插入模式,x是删除而不是在vim中转换g如上:普通模式下15gg是在vim中跳转到15行可视化如上:普通模式下是打开选择可视化模式VSCode中常用的Vim组合逻辑VimhobbiesWriters常说:Vim是一种逻辑,不是死记硬背快捷键(我不是Vim粉,这句话不是我说的,是linux社区一些朋友说的)。我对Vim的“逻辑”的理解大致是这样的:大写是一种逆向逻辑VSCode中的一些Ctrl和滚动(意思是括号里的解释如下。大写是一种逆向逻辑intfoo_xyz=1;我们知道,当光标在在_处,如果要删除_xyz,首先要找到最近的z位置,然后删除这个范围内的东西,在vim中输入dfz表示,fz就是在vim中找到z的意思,f和F那么,什么是正向搜索呢?答案是大写F,具体例子如上图。vim中的o和O如上,使用o可以方便的往下插入一行,使用O就是插入一行VSCode中的一些Ctrl和滚动vim中的[]如上,使用Shift+[]是以“代码块”为单位跳行。vim中的Ctrl+[]同上,Ctrl+[]实现缩进的调整。这结合了视觉模式。vim中滚动如上,[[跳转到文件第一行,]]为行尾。vim中的HLMz如上,H到屏幕顶部,L是屏幕底部,M是屏幕中心;而zz是“将光标放在屏幕中央而不移动光标(滚动屏幕)”,zt是把光标放在最上面,zb是最下面。i(meansprint(f"what{s}?")intheparentheses。如上,当我们要清除print()函数括号内的内容时,我们可以“逻辑上”告诉vim。将光标移动到括号,输入ci(或ci),其中i(是“括号内”。一种逻辑如上,不仅是c运算,不仅是(),适用于“”,[]等。另外,有很多逻辑可以组合,比如:j是往下跳一行,那么10j就是往下跳10行。另外,/search功能在vscode中也适用。不过,我更喜欢ctrl+vscode自带的f搜索,vscode自带的组合键有什么神奇的功能,我们下次再分解,另外推荐一本vscode的黑宝书,虽然我一般不推荐买《软件参考书》,这本书里面还有vscode的社区和历史,微软工程师韩老师写的。因为我是vscode的积极志愿者社区,我有幸得到这本书的签名本。非常全面,vscode超乎你的想象。也不是不可以(做不到可以在github上提issue,马上就可以做),读起来还是很不错的。在这里给个链接,希望大家理性消费(毕竟比较厚)。