VSCode Vim插件配置:插入模式用默认VSCode操作,保留Esc切正常模式
问题描述
我喜欢Vim普通模式的快捷键,但更偏好VSCode默认的快捷键,比如多光标相关操作(像Ctrl+D选中下一处匹配项、Ctrl+F2选中所有匹配项)。现在用这些快捷键时,就算已经关闭了vim.mouseSelectionGoesIntoVisualMode,还是会自动进入Visual模式。
简单说,我想要插入模式下完全禁用Vim插件的功能(就像没装这个插件一样),但保留按Esc键切换到Vim普通模式的能力。
当前设置/偏好
User/settings.json
"vim.useCtrlKeys": false, // 对我无效,已移除部分Ctrl键绑定 "vim.startInInsertMode": true, "vim.mouseSelectionGoesIntoVisualMode": false, "vim.smartRelativeLine": true, "vim.useSystemClipboard": true,
User/keybindings.json
(命令前的减号表示已禁用)
{ "key": "shift+alt+down", "command": "-extension.vim_cmd+alt+down", "when": "editorTextFocus && vim.active && !inDebugRepl" }, { "key": "shift+alt+up", "command": "-extension.vim_cmd+alt+up", "when": "editorTextFocus && vim.active && !inDebugRepl" }, { "key": "ctrl+d", "command": "-extension.vim_ctrl+d", "when": "editorTextFocus && vim.active && vim.use<C-d> && !inDebugRepl" }
操作系统
Windows 11
解决方案
1. 调整settings.json配置
在settings.json中添加或修改以下选项,彻底让插入模式下的快捷键归VSCode原生控制:
// 清空插入模式下的Vim自定义绑定 "vim.insertModeKeyBindingsNonRecursive": [], // 禁用Vim对插入模式下所有Ctrl类快捷键的拦截 "vim.handleKeys": { "<C-a>": false, "<C-c>": false, "<C-d>": false, "<C-e>": false, "<C-f>": false, "<C-h>": false, "<C-i>": false, "<C-j>": false, "<C-k>": false, "<C-l>": false, "<C-n>": false, "<C-o>": false, "<C-p>": false, "<C-r>": false, "<C-s>": false, "<C-t>": false, "<C-u>": false, "<C-v>": false, "<C-w>": false, "<C-x>": false, "<C-y>": false, "<C-z>": false, // 若有其他需要保留原生行为的快捷键,可在此继续添加 }, // 仅保留普通/可视模式下的Vim快捷键功能 "vim.useNormalModeKeyBindings": true, "vim.useVisualModeKeyBindings": true,
2. 完善keybindings.json规则
针对插入模式单独禁用Vim的命令绑定,确保原生快捷键完全生效:
// 禁用Vim在插入模式下的Ctrl+D绑定 { "key": "ctrl+d", "command": "-extension.vim_ctrl+d", "when": "editorTextFocus && vim.active && vim.mode == 'insert' && !inDebugRepl" }, // 禁用Vim在插入模式下的Ctrl+F2绑定 { "key": "ctrl+f2", "command": "-extension.vim_ctrl+f2", "when": "editorTextFocus && vim.active && vim.mode == 'insert' && !inDebugRepl" }, // 其他需要禁用的Vim插入模式快捷键,可按此格式添加
3. 验证效果
保存所有设置后重启VSCode:
- 插入模式下使用
Ctrl+D、Ctrl+F2等快捷键,会触发VSCode原生多光标功能,不会进入Visual模式 - 按下
Esc可正常切换到Vim普通模式,使用Vim的快捷键操作
内容的提问来源于stack exchange,提问作者SteveyMcSteve 07
相关产品推荐
相关产品推荐

