vscode插件同步必须使用github账户,microsoft账户不生效;需手动开启settings sync并勾选extensions等五项,上传后新设备需手动安装扩展,跨平台配置与插件会被静默跳过。

VSCode插件同步必须用 GitHub 账户,Microsoft 账户不生效
内置 Settings Sync 功能在 2023 年底已弃用,现在实际起效的是 VS Code 1.65+ 内置的「新 Settings Sync」,但它**只认 GitHub OAuth 授权**,哪怕你用 Microsoft 账户登录了 VS Code 主体,同步插件时仍会静默失败——表现为状态栏云图标灰色、右下角无提示、Extensions 列表始终为空。
必须手动触发登录流程:Ctrl+Shift+P → 输入 Preferences: Turn on Settings Sync… → **强制选择 GitHub**(不是 Microsoft)→ 授权时勾选 gist、user:email、read:user 三项权限。如果企业网络拦截 gist.github.com,临时切手机热点验证;也可在设置中搜 sync.gist,确保其值为空(非空表示被手动覆盖过,需删掉)。
插件同步默认关闭,必须手动勾选 Extensions 并上传
即使你成功登录 GitHub,Extensions 同步仍是默认关闭的。首次弹出的 Choose what to sync 面板里,它不会自动勾选——漏掉这一项,新设备就永远装不上你的插件。
- 务必手动勾选:Settings、Extensions、Keybindings、User Snippets、UI State 这五项
- 勾选后,系统会问“Upload local settings”还是“Download from account”;新设备选后者,但注意:这只是**一次性拉取**,不是持续监听
- 之后每次装/卸插件、更新插件版本,都必须手动运行
Preferences: Sync: Upload Settings,否则另一台设备永远不知道 - 同步只传
extensions.json列表,不自动安装;新设备下载后,VS Code 会在右下角弹出Extensions to install横幅,或在扩展视图顶部显示Recommended extensions——需要你点一下“Install”或等它自动完成
敏感路径和平台专属插件会被跳过,且不报错
VS Code 同步过程会静默过滤含机器依赖的配置项,比如 python.defaultInterpreterPath、terminal.integrated.profiles.windows、http.proxy。你在 Windows 上配好的终端 profile,同步到 macOS 后直接消失,控制台也不会提示。
平台专属插件同理:ms-vscode.powershell(仅 Windows)或 ms-vscode.cpptools(macOS/Linux 行为差异大)在跨平台同步时会被跳过,不报错、不警告、也不进冲突列表。
- 想显式排除某扩展?在
settings.json中加注释:// @sync false放在该行上方 - 想防止调试器类扩展引发崩溃?可设
"settingsSync.ignoredExtensions": ["ms-python.python", "ms-vscode.cpptools"] - 工作区级配置(
.vscode/settings.json)天然不同步——这是设计使然,别试图把它塞进同步范围
同步不是实时双向,状态栏显示 “Synced” 不代表当前一致
左下角云图标变蓝、显示 Synced,只代表上一次上传/下载动作完成,不代表此刻本地和云端配置一致。你改了快捷键、装了新插件、调了主题,其他设备不会自动感知。
真正容易被忽略的是:同步是「一次性协商 + 增量触发」,没有后台监听,没有 WebHook,也没有实时推送。两台设备都开着 VS Code 且联网,只是让同步延迟缩短到几秒级,但前提是你主动上传、对方主动下载。
检查是否真同步成功?运行 Settings Sync: Show Synced Data,确认 Extensions、Keybindings、User Snippets 三项都打了勾;再打开命令面板,运行 Extensions: Show Installed Extensions,逐个核对 ID 是否匹配云端列表。











