VSCode 重装后快捷键未恢复,主因是 Settings Sync 中 Keybindings 默认未勾选且需手动逐项确认;同步前须确保扩展安装完成,手动导入 keybindings.json 时须用 VSCode 打开、清除注释与 BOM、删除带 "when" 条件的条目。

Settings Sync 必须手动勾选 Keybindings 才生效
VSCode 重装后快捷键没回来,不是同步没开,而是 Keybindings 这一项默认不勾选。哪怕你点了“同步全部”,UI 也可能跳过它——尤其用左下角齿轮菜单进的设置同步入口,容易漏掉确认步骤。
正确做法是:按 Ctrl+Shift+P(Win)或 Cmd+Shift+P(Mac),输入 Settings Sync: Turn On,登录账号后,**必须逐项确认五项勾选**:Settings、Keybindings、Extensions、Snippets、UI State。缺一不可。
- 同步成功标志是右下角状态栏显示
Sync: On (Microsoft)或Sync: On (GitHub),灰色云朵图标只是待机,不算生效 - 如果重装前没开过同步,新设备上不会自动拉取——得先在旧设备上手动触发一次上传(哪怕只是改个主题再保存)
- 同步后快捷键仍不生效?大概率是扩展还没装完就点了“完成”,等右下角弹出
Extensions installed提示,再重启一次
keybindings.json 手动导入时路径和格式必须严格匹配
同步失败时直接拷文件最可靠,但 Windows 和 Mac 的 keybindings.json 路径不同,填错位置 VSCode 就当它不存在。
Windows 路径:%APPDATA%\Code\User\keybindings.json
macOS 路径:~/Library/Application Support/Code/User/keybindings.json
- 别用 Finder 或资源管理器双击打开这个文件——它可能被其他编辑器以 UTF-8 BOM 方式保存,VSCode 会静默跳过整个文件
- 务必用 VSCode 自己打开:
Ctrl+Shift+P→Preferences: Open User Keybindings (JSON),然后粘贴内容 - 内容必须是合法 JSON:不能有
//注释,不能有多余逗号,字符串用双引号,结尾不能是[](空数组会被识别为有效配置,反而覆盖默认键位)
重装前没开同步?别直接复制 User 目录
很多人把旧电脑的 User 文件夹整个拖过去,结果快捷键还是不对,甚至 UI 卡死——因为跨版本或跨平台时,keybindings.json 里某些插件 ID 已失效,或修饰键映射逻辑变了(比如旧版把 ctrl 当作字面量,新版要转成 cmd)。
- 只取
keybindings.json文件本身,不要带snippets/、storage.json或state.vscdb - 打开文件,删掉所有带
"when":条件的条目(它们常依赖已卸载或升级的扩展) - 保留形如
{"key":"ctrl+k ctrl+s","command":"workbench.action.openGlobalKeybindings"}这类纯命令绑定即可,VSCode 会自动适配平台
快捷键恢复后仍异常?优先排查单个命令而非全局重置
重装后只有 Ctrl+P 不好使,其他都正常?大概率是某个扩展冲突,而不是整个 keybindings.json 坏了。全局清空文件反而可能让问题更难定位。
- 按
Ctrl+K Ctrl+S打开快捷键编辑器,在搜索框输入workbench.action.quickOpen - 找到对应条目,点击右侧垃圾桶图标移除绑定——VSCode 立即回退到内置默认键位,不用重启
- 如果多个命令绑了同一个组合键,右键该条目 →
Copy When Clause,再查文档确认哪个when条件当前不满足
真正麻烦的不是同步开关没点,而是同步后扩展没装完就急着用快捷键,或者手动导入时用了带 BOM 的 JSON 文件——这两处最容易被忽略,也最难排查。


















