vscode官方settings sync已弃用,必须用shan khan的settings sync扩展配合github实现同步;需手动启用extension sync、正确选择merge/replace、运行upload/download命令,且敏感路径字段会被静默过滤。

VSCode 官方 Settings Sync 功能已在 2023 年底弃用,现在必须依赖 Settings Sync 扩展(作者 Shan Khan)配合 GitHub 账户实现插件与配置同步——不是点开就自动生效,不手动上传下载,另一台电脑永远拉不到新插件。
为什么插件没同步过来?检查这三个关键开关
插件同步不是默认开启的,Settings Sync 扩展默认关闭 syncExtensions 和 syncLocalSettings,即使你登录了 GitHub、上传过配置,插件列表也不会动。
- 打开命令面板(
Ctrl+Shift+P或Cmd+Shift+P),运行Sync: Advanced Options→Toggle Extension Sync,确保它被启用 - 首次同步时弹出的 “Merge” 或 “Replace” 提示必须选对:
Merge会保留本地已装插件并叠加云端列表;Replace会清空本地插件再重装云端清单——选错直接丢掉一半插件 - 同步只管理“安装列表”,不触发实际安装:比如
ms-python.python卡在Installing…状态,得手动点扩展面板右上角刷新按钮
settings.json 里哪些路径字段会被静默跳过?
VSCode 不会上传含机器依赖的绝对路径字段,也不报错、不提示,导致你在 macOS 上看到 python.defaultInterpreterPath 是空的,或 Windows 终端配置直接失效。
- 被过滤的典型字段:
python.defaultInterpreterPath、terminal.integrated.profiles.windows、http.proxy、telemetry.enableTelemetry - 想显式排除某行?加注释:
// @sync false放在该配置项上方即可,例如:"python.defaultInterpreterPath": "/usr/local/bin/python3", // @sync false
- 工作区级配置(
.vscode/settings.json)天然不同步,这是设计使然,避免项目设置污染全局环境
同步状态栏显示 “Synced” 就代表一切 OK 吗?
不。左下角灰色云图标 ≠ 启用成功;显示 Synced 仅代表最后一次上传/下载动作完成,不代表当前配置和远端一致——尤其当你改了 keybindings.json 却没手动上传,新设备就永远用不上新快捷键。
- 每次修改设置、装/卸插件、更新代码片段后,都必须手动运行
Sync: Upload Settings - 另一台设备要获取变更,也得手动运行
Sync: Download Settings,没有后台监听,没有实时推送 - 检查同步内容是否完整:运行
Settings Sync: Show Synced Data,确认Extensions、Keybindings、User Snippets这三项都打了勾
最常被忽略的一点:GitHub Token 权限必须包含 gist、user:email、read:user,缺一不可;Token 过期或企业网络拦截 gist.github.com 请求,会导致上传无声失败,日志里只显示 Failed to fetch gist。











