Keybindings 必须手动勾选才能同步,且依赖 Remote Development 扩展启用;若未生效,需检查同步项、扩展状态、冲突提示及平台适配。

Keybindings 必须手动勾选,否则不会同步
VSCode 的 Settings Sync 默认不自动勾选 Keybindings,哪怕你开了同步,新设备上 Ctrl+P、Ctrl+Shift+P 依然可能没反应——这不是插件问题,是同步项漏了。首次启用时弹出的 Choose what to sync 面板里,Keybindings 是独立选项,且默认未勾选。
- 务必在勾选列表中明确打勾
Keybindings,连同Settings、Extensions、User Snippets、UI State一起选上 - 如果已启用同步但快捷键没生效,不要重装 VSCode,直接运行
Preferences: Sync: Download Settings再确认Keybindings是否在同步项中 - macOS 和 Windows 的
keybindings.json文件内容结构一致,但部分快捷键(如CmdvsCtrl)会自动适配系统,无需手动改键名
同步后快捷键不生效?检查 Remote Development 扩展是否启用
2026 年起,VSCode 的同步功能底层依赖 Remote Development 扩展提供的账户服务。如果这个扩展被禁用或未安装,Keybindings 就算勾了也上传不了,状态栏云图标会一直卡在 Signing in... 或直接不显示。
- 打开扩展视图(
Ctrl+Shift+X),搜索Remote Development,确保它处于“已启用”状态 - 企业定制版 VSCode 常默认移除此扩展,需手动从 Marketplace 安装并重启编辑器
- 即使你从不用远程开发,也必须启用它——这是同步机制的硬性依赖,不是可选功能
自定义快捷键冲突或覆盖失败的常见原因
同步不是无脑覆盖。VSCode 遇到本地与云端快捷键定义冲突时,不会自动合并,而是跳过该条目,导致你明明上传了新绑定,另一台设备却没变。
- 冲突常发生在同一命令被不同扩展绑定(例如
editor.action.formatDocument被 Prettier 和 ESLint 同时绑定),VSCode 只保留第一个加载的 - 运行
Sync: Show Conflicts可查看具体冲突项,手动选择“Accept Incoming”或“Keep Local” - 绑定到硬件专用键(如某些笔记本的
F12、Fn+Backspace)可能因平台差异失效,这类键建议只在单设备配置,不参与同步 -
keybindings.json中含绝对路径或环境变量的快捷键(如调用本地脚本)天然不同步,因为sync.ignoredSettings会过滤掉所有含路径字段的配置
手动备份 keybindings.json 作为兜底方案
当同步反复失败、或你只想迁移某几条快捷键(比如公司电脑和家用电脑用不同终端),直接复制 keybindings.json 是最可控的方式。
- 文件路径:
Windows: %APPDATA%\Code\User\keybindings.json,macOS: ~/Library/Application Support/Code/User/keybindings.json,Linux: ~/.config/Code/User/keybindings.json - 复制前关闭所有 VSCode 实例,避免文件被锁;粘贴后无需重启,VSCode 会自动重载
- 注意:手动覆盖会完全替换当前设备的快捷键配置,建议先备份原文件再操作
- 如果只是想加几条快捷键而非全量替换,用
Preferences: Open Keyboard Shortcuts (JSON)直接编辑更安全
Remote Development 扩展的状态,以及 Sync: Show Conflicts 这个命令——它不常被触发,但一旦快捷键没同步成功,八成就卡在这儿。


















