常用vim技巧总结

开始

真正使用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 删除光标位置的字符。

以上大概就是我高频使用到的命令,如有其他的常用的命令,大家可在评论区补充。
:)

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享