VSCode中Vim插件:将Redo重映射至U键失败求助
解决VSCode Vim插件中U键绑定重做未生效的问题
我之前也踩过这个按键映射的坑,来帮你搞定它!
首先,你当前的配置没生效主要有两个原因:一是命令名称不对,二是没完全覆盖Vim插件默认的U键行为(默认U是撤销当前行的修改)。下面给你两种靠谱的解决方案:
方案一:直接绑定VSCode原生编辑命令
这种方式直接调用VSCode内置的撤销/重做功能,兼容性拉满。把下面的配置添加到你的settings.json里:
"vim.normalModeKeyBindingsNonRecursive": [ // 将U键绑定为重做 { "before": ["U"], "commands": [{ "command": "editor.action.redo" }] }, // 确认u键绑定为撤销(如果之前没修改过默认配置,这行可以省略,原生u就是撤销) { "before": ["u"], "commands": [{ "command": "editor.action.undo" }] } ]
方案二:贴合Vim原生逻辑映射
如果你更习惯Vim的原生操作逻辑(Vim里重做是Ctrl+R),可以用after字段模拟按下原生快捷键,配置更简洁:
"vim.normalModeKeyBindingsNonRecursive": [ { "before": ["U"], "after": ["<C-r>"] } ]
(u键默认就是撤销,除非你之前改过配置,否则不需要额外设置)
让配置生效的步骤
- 按
Ctrl+,(Windows/Linux)或Cmd+,(Mac)打开VSCode设置 - 点击右上角的「打开设置(JSON)」按钮
- 将上述配置粘贴到JSON文件中,保存修改
- 按
Ctrl+Shift+P(Windows/Linux)或Cmd+Shift+P(Mac),搜索并执行「Reload Window」,让配置生效
完成这些操作后,U键就能正常执行重做,u键保持撤销功能啦!
内容的提问来源于stack exchange,提问作者Jake
相关产品推荐
相关产品推荐

