Table of Contents
- 此前做过一篇极为浅的
Vim入门介绍,但是当时理解不够深刻,没能将Vim的光标跳转的全部功能展示出来 - 本篇就是对
Vim光标跳转快捷键的总结,按我理解的常用程度从大到小排序 - 如果使用
neovim,可以使用which-key更直观地学习和记忆快捷键
快捷键#
直接进行的快捷键#
hjkl:最基本的移动键e:移动到下一单词结尾b:移动到上一单词结尾0:移动到行首,^与其等价,因此^没有使用场景,可以用作其它快捷键G:移动到行末,与其配对的是gg,通过输入前置数字可以跳转至指定行,例如10G表示跳转到第十行{/}:移动到上/下一段落n/N:跳转到下一个/上一个搜索匹配成功的位置(/)移动到句子,原生的()但并不常用,但在包含lsp的文件中,可以使用一些插件(如aerial)覆盖()的行为使其更有作用,而且它更好按C-d/C-u:跳转下/上半页,许多插件的帮助也使用它们进行翻页,例如which-key<C-o>/<C-i>:移动到上/下次鼠标停顿的位置,停顿的计算详见跳转列表$:移动到行末,由于可以通过A直接在行末插入,而在行末的普通模式可能只会进行粘贴,因此不常用%:循环移动到所在的括号对,在引入treesitter以及一些插件后,%也并不常用H/M/L:移动到当前窗口的顶部/中间/底部
使用等待模式的快捷键#
- 等待模式是很有说法的模式,不止光标跳转,替换、删除等快捷方式都可以通过等待模式实现奇妙的联动
g:gv:选中上一次被选中的部分gd/gi/gr:它们不是原生的快捷键,恰巧可以配置lsp提供的功能,分别绑定到跳转到定义/实现/引用gO:显示lsp提供的大纲,可以由其它快捷键和插件代替,例如aerialgf:跳转到光标所在字符串指向的文件,基本会被lsp替代gu/gU:按下后执行可以直接完成的跳转命令,会在跳转的同时将沿途的字母变为小写/大写
z:zz:将光标所在行移动到窗口正中zt/zb:将光标所在行移动到窗口顶部/底部,并不常用
使用命令模式的快捷键#
跳转列表#