使用Vim键绑定时如何高效跳过右括号、右引号等闭合字符?
VSCode Vim模式下跨过自动闭合字符的实用方案
完全不需要死磕ESC + l + a这类冗余组合键,从零配置到自定义键位有好几套效率更高的方案,按学习成本从低到高列:
零配置原生可用操作
不需要改任何设置,记住几个Vim和插件默认的逻辑就能直接用:
- 先优化你现在的操作逻辑:普通模式下
a键本身的作用就是移动到光标所在位置的下一个字符,进入插入模式,跨过单个闭合字符根本不需要按l,直接ESC + a就能到位,比你原来的按法少一个按键,练熟肌肉记忆之后速度非常快。 - 多层嵌套场景用匹配跳转:如果遇到多层括号/引号嵌套,普通模式下直接按
%,会直接跳转到和当前位置匹配的成对符号(比如左括号跳对应右括号,右引号跳对应左引号),跳转后按a就能直接到符号外侧继续输入,比反复按方向键/l移光标效率高很多。 - 插入模式下直接敲对应闭合字符:VSCode和Vim插件默认做了兼容,当光标紧贴自动生成的闭合字符左侧时,直接敲对应的闭合符号不会重复输入内容,会直接把光标挪到闭合符号外侧。
举个实际场景:输入
(后VSCode自动补全为(|),输完括号内的内容后光标停在(content|)位置,这时候直接敲),光标会直接跳到右括号外侧,全程不用退出插入模式,输入引号、花括号的逻辑完全一致。
1个配置实现无ESC跳转
如果不想频繁退出插入模式,可以加一行简单的键位绑定,实现插入模式下一键跨过闭合字符:
- 打开VSCode的
settings.json配置文件 - 在配置中加入如下内容:
"vim.insertModeKeyBindings": [ { "before": ["<C-l>"], "after": ["<escape>", "a"] } ]
配置完成后,在插入模式下只要按Ctrl+l,就会直接跨过光标后紧邻的单个字符(不管是闭合括号、引号还是其他普通字符)并保持插入状态,手不用离开主键盘区,流畅度比退模式跳转高很多。
小提示
不需要特意关掉VSCode的自动闭合字符功能,这类功能和Vim键位没有本质冲突,只是新手刚接触的时候容易被默认的编辑思维限制,熟悉Vim的基础操作逻辑之后,两者配合反而能进一步提升输入效率。
内容的提问来源于stack exchange,提问作者DRJ
相关产品推荐
相关产品推荐

