开始
真正使用vim已经有一年啦,深感这的确是程序开发者的一项很好用的工具,熟练使用可以帮助自己节约大量的时间,不需要在鼠标和键盘之间来回切换,仅仅依靠键盘就能完成一系列工作,如此一来思路不会被打断,能够使自己更加专注在代码编辑上。但是上手这个工具的学习成本确实有点高,即使长时间使用,也总能发现vim中一些实用的的技巧原来自己没有get到,于是便写下这篇文章,帮助自己、以及喜欢vim的同学一起学习。
所以本篇文章会从自己的实际使用角度出发,去记录一些实用的技巧,所以本文不包含简单的vim光标移动、模式转换等基础使用的介绍。本文也会包括一些vscode、输入法相关的快捷键是用技巧,终归一个目的:就是让手尽可能的少离开键盘。
- 环境准备:vscode + vscodevim
常用技巧
对于编辑以下示例代码:
function foo(name, age) {
console.log(name)
}
-
如何对参数
(name, age)快速选中并变更?在参数区域按下
vib键,可以快速选中,然后按下c键,删除并进入插入模式。如果需要选中两边的的小括号,那么可以按下vab键。相关的还有:
viw快速选中单词,vip快速选中段落。 -
同理如何选中函数体部分,也就是花括号的区域?
在函数部分按下
viB键,选中函数体中的内容,如果需要连同选中两边的花括号可以按下vaB键。 -
光标如何在匹配括号之间跳转?
首先让光标位于其中一个括号上,然后按下
%键。 -
插入模式下,光标如何左右移动?
ctrl + f光标向后移动,ctrl + b光标向前移动,这个功能在插入模式下会经常使用到,同时这个技巧几乎适用于所有的编辑区域,包括命令行。 -
如何快速找到最近编辑的地方,并进入插入模式?
按下
gi键。 -
在同时编辑两个文档的情况下,光标如何快速移动?
ctrl + o光标跳转到上一次的位置,ctrl + i光标跳转到下一些位置。也可以使用ctrl + tab在多个文档间切换。如果文档未打开过,可以使用cmd + p查找并打开。 -
在输入中文的情况下,如何上下翻备选词或字?
尽量不使用上下箭头,因为会使得手离开按键区域,可以使用句号下翻,逗号上翻。如果要取消输入可以直接使用
esc退出。 -
如果再输入过程中,发现当前光标位置太靠近屏幕下方,怎样使当前编辑区域位于屏幕中央?
按下
zz键,与光标移动有关的还有ctrl + u/b向上翻半/全屏,ctrl + d/f向下翻半/全屏。gg去到文章开头,G去到文章结尾。 -
如何在一行内快速跳转到某个字符?
f + 字符向后查找,F + 字符向前查找。例如想要删除从当前到e之间的字符,那么可以使用dfe键删除。在单行内移动还有如下方法:
0移动到这一行开头,$移动到这一行结尾。 -
经常一个操作就是编辑代码,然后使用命令行运行,所以如何在代码区和命令行区域快速切换?
这个需要自定义vscode快捷键。
在
preferences下选择keyboard shortcuts,查询focus terminal,输入自己喜欢的快捷键,例如我输入的就是cmd + j。同理:想要聚焦在代码编辑区域,输入focus editor,编辑Focus First Editor Group为自己喜欢的快捷键,例如我使用的就是cmd + i键。这样就可以使用 cmd + i/j 在代码编辑区和命令行之间切换啦。
{ "key": "cmd+j", "command": "workbench.action.terminal.focus" } { "key": "cmd+i", "command": "workbench.action.focusFirstEditorGroup" } -
如何快速关闭窗口?
使用
ctrl + w键。 -
如何快速删除一行内容并进入编辑模式?
使用大写的
S。小写的s是删除当前字符并进入插入模式。类似的还有cw删除当前单词并进入插入模式。万一删除错了,使用u回退。
命令行技巧
-
如何快速查找一个命令?
可以使用
ctrl + r查找历史记录。 -
如何快速上下翻查找命令?
还是不使用上下箭头键,因为会使手脱离字母键盘区域。那么可以使用
ctrl + p/n上下翻。 -
命令行中光标移动?
ctrl + a移动到行首,ctrl + e移动到行尾,ctrl + f向后移动,ctrl + b向前移动。 -
命令行中如何快速快速删除?
可以使用
ctrl + u删除一整行,ctrl + w删除上一个单词。ctrl + k删除光标后的所有字符,ctrl + d删除光标位置的字符。
以上大概就是我高频使用到的命令,如有其他的常用的命令,大家可在评论区补充。
:)