VSCode 设置同步依靠内置的 Settings Sync 功能,登录同一 GitHub 账号即可自动双向同步扩展、主题、快捷键等,首次启用需手动开启并授权 gist 权限,敏感信息需提前清理。

VSCode 设置同步靠的是 Settings Sync 功能,不是手动复制配置文件
VSCode 官方从 1.60 版本起内置了 Settings Sync(设置同步),它不依赖第三方插件,也不需要你去翻 settings.json 或 keybindings.json 手动搬运。只要登录同一个 GitHub 账号,扩展、主题、快捷键、设置项、Snippets 甚至调试配置都能自动双向同步。
注意:同步开关默认关闭,且首次启用时必须显式选择「登录并同步」,不会偷偷上传你的配置。
- 同步前务必确认当前设备上的
settings.json没有敏感信息(比如硬编码的 API key、本地路径),因为这些内容也会被上传到 GitHub 的私有 gist 中 - 如果你之前用过旧版 Settings Sync(v1)或第三方插件(如
Settings Sync插件),请先禁用/卸载,否则可能冲突导致同步失败或覆盖错误 - 国内用户若遇到 GitHub 登录卡在授权页,可尝试临时切换网络环境,或检查系统时间是否准确(OAuth 依赖时间戳校验)
启用 Settings Sync 的三步操作流程
打开命令面板(Ctrl+Shift+P / Cmd+Shift+P),输入并执行:
-
Developer: Toggle Developer Tools—— 看一眼控制台有没有报Failed to fetch类错误,有助于判断是网络还是权限问题 -
Preferences: Turn On Settings Sync...—— 选择要同步的内容类型(建议全选,尤其别漏掉Extensions和Keybindings) - 按提示跳转 GitHub 授权页,勾选
gist权限后返回 VSCode,等待右下角出现「Synced」提示
此时另一台已登录同一 GitHub 账号的设备,只需执行 Preferences: Turn On Settings Sync... 并选择「Download」即可拉取最新配置,无需重启编辑器。
同步失败常见原因和对应检查点
同步状态图标(右下角齿轮图标)显示「Conflicted」或「Paused」,大概率是以下几种情况:
- 两台设备修改了同一项设置(例如都改了
editor.fontSize),VSCode 不会自动合并,而是暂停同步并提示冲突;需手动点击图标 →Resolve Conflicts选择保留哪边 - 某台设备的扩展列表里存在无法公开安装的扩展(比如内部企业插件、本地
.vsix安装的扩展),同步会跳过它们,但不会报错——可在Extensions视图中筛选「@installed」查看是否缺失 -
settings.json中含有未被支持的字段(如自定义的"myCustomFlag": true),这类字段会被忽略,但不会阻断同步;可通过Developer: Show Running Extensions查看是否有扩展注册了非标准配置项
不想同步某些配置?用 sync.ignoredSettings 白名单过滤
有些设置天然不该跨设备同步,比如窗口大小、最近打开的文件、终端历史、或仅适用于某台机器的路径配置(python.defaultInterpreterPath)。VSCode 提供了 sync.ignoredSettings 配置项来排除它们:
"sync.ignoredSettings": [ "window.zoomLevel", "workbench.startupEditor", "terminal.integrated.env.linux", "python.defaultInterpreterPath" ]
这个列表只影响同步行为,不影响本地运行;每台设备可以维护自己的忽略项,互不干扰。注意:它不能写正则,只能精确匹配设置键名。
路径类配置最容易被忽略——比如你在公司电脑上写了 "files.exclude": {"/node_modules/": true},回家后同步过去,可能意外隐藏了你本地项目的 node_modules,而你根本没意识到是同步带过来的。










