清空 keybindings.json 为 {} 可恢复默认快捷键,但需先禁用 Vim/Emacs/IDEA Keymap 等扩展,并关闭 Settings Sync,否则重启后配置会被重置。

直接删掉 keybindings.json 文件内容(留空)或清空整个文件并保存,VSCode 会自动回落到内置默认快捷键;但如果你装了 Vim、Emacs 或 IDEA Keymap 这类扩展,它们会接管按键逻辑——这时候删配置没用,得先禁用扩展。
删 keybindings.json 内容比删文件更安全
VSCode 的快捷键优先级是:用户设置 > 工作区设置 > 内置默认。只要 keybindings.json 存在且非空,它就生效。但注意:
- 不要只注释掉内容或改成
[],VSCode 会把空数组当有效配置,仍可能干扰默认行为 - 正确做法是打开命令面板(
Ctrl+Shift+P或Cmd+Shift+P),执行Preferences: Open User Keybindings (JSON),全选 → 替换为{}→ 保存 - 路径必须确认是用户级目录:
%APPDATA%\Code\User\keybindings.json(Windows)、~/Library/Application Support/Code/User/keybindings.json(macOS)、~/.config/Code/User/keybindings.json(Linux)
workbench.action.quickOpen 这类单个命令恢复更快
如果你只是某个快捷键不对(比如 Ctrl+P 打不开快速打开),不用动全局配置:
- 打开命令面板,输入
Preferences: Open Keyboard Shortcuts - 在搜索框里输命令名,例如
workbench.action.quickOpen - 找到对应条目右侧显示的绑定,点击垃圾桶图标(或右键 →
Remove Keybinding) - 操作后立即生效,无需重启 VSCode
但要注意:如果多个命令绑了同一个组合键(比如两个插件都抢 Ctrl+Shift+L),删的时候得看清楚删的是哪个。
扩展冲突导致快捷键“重置无效”最常见
很多用户清空 keybindings.json 后发现快捷键还是不对,根源不在 JSON 文件,而在扩展。Vim、Emacs Keymap、IntelliJ IDEA Keybindings 这些扩展的按键处理逻辑是独立于 VSCode 默认系统的,它们的优先级更高。
- 临时验证是否是扩展问题:终端执行
code --disable-extensions启动 VSCode,再试快捷键 - 如果此时恢复正常,说明是扩展干扰;逐个启用扩展,观察何时复现异常
- 特别留意那些带“Keymap”字样的扩展,它们通常不走
keybindings.json流程,而是通过自己的状态机拦截按键
Settings Sync 开着,重置等于白干
你刚清空 keybindings.json,一重启,快捷键又变回老样子?大概率是 Settings Sync 在后台自动拉取了云端旧配置。
- 必须先执行
Preferences: Turn Off Settings Sync,并勾选Turn Off and Reset Local State - 重启后检查右下角齿轮图标旁有没有云朵图标;没有,才说明关成功
- 验证方式:打开
keybindings.json,内容应为空对象{},而不是一堆数组项
真正容易被忽略的点是:即使你没主动开过 Sync,新装 VSCode 登录微软账户后默认就开启,且同步动作发生在启动后几秒内——快到你根本来不及反应。


















