vscode 内置 settings sync 是唯一推荐方案:2023年底起官方弃用 shan khan 版扩展,新版本(1.65+)默认启用集成 github oauth 的内置同步,需卸载第三方插件、手动勾选 extensions 等五项并上传,插件不自动安装,跨平台敏感配置会被静默过滤。

VSCode 内置 Settings Sync 是唯一推荐方案
2023 年底起,VS Code 官方已弃用旧版 Settings Sync 扩展(Shan Khan 版),所有新版本(1.65+)默认启用的是内置同步机制,它直接集成 GitHub OAuth,不依赖 Gist Token 或手动配置。继续用第三方插件不仅多一层维护成本,还会和内置功能冲突——比如同时开启时,sync.autoDownload 行为不可预测,extensions.json 可能被覆盖或忽略。
常见错误现象:Settings Sync 扩展仍显示“Upload complete”,但新设备扩展列表为空;或者状态栏云图标灰色,右下角无任何提示。
- 必须卸载
Settings Sync(作者 Shan Khan)这类第三方同步扩展,避免干扰 - 确认 VS Code 版本 ≥ 1.65:Help → About 中查看,低于此版本请先升级
- 登录流程只能走
Preferences: Turn on Settings Sync…命令,不能靠扩展面板或设置页按钮 - 登录时强制选择 GitHub(不是 Microsoft 账户),否则后续所有同步动作静默失败
Extensions 同步开关必须手动勾选,不会默认开启
即使你成功用 GitHub 登录了,Extensions 同步项在首次弹出的 Choose what to sync 面板里仍是未勾选状态。漏掉这一项,extensions.json 根本不会上传,新设备自然看不到任何插件。
使用场景:你在 MacBook 上配好 Python + Rust 环境后上传,Windows 新设备打开 VS Code,扩展视图一片空白——大概率就是这一步没点。
- 勾选项必须包含:
Settings、Extensions、Keybindings、User Snippets、UI State - 不要勾选
Tasks或Launch Configurations:它们属于工作区级配置,跨设备同步易引发调试器崩溃 - 勾选后务必点 “Upload local settings”,不是 “Download from account”——后者只适用于已有配置的新设备
同步后插件不自动安装,需手动触发或等提示
VS Code 同步的只是 extensions.json 列表,不是插件二进制包本身。安装动作是分离的,且默认不自动执行。所以你会看到扩展视图里插件名灰着、状态卡在 Installing…,甚至右下角横幅一闪而过就没了。
性能影响:大体积插件(如 ms-python.python、ms-vscode.cpptools)若卡住,会阻塞其他插件安装队列,导致整个扩展面板响应迟滞。
- 最可靠方式:打开扩展视图(Ctrl+Shift+X),点右上角刷新按钮(↻)强制触发安装
- 次选方式:等待右下角出现
Extensions to install横幅,点击 “Install” —— 但部分企业网络会拦截marketplace.visualstudio.com请求,导致横幅不出现 - 检查是否被跳过:运行
Extensions: Show Installed Extensions,对比云端列表;若缺失,再查settingsSync.ignoredExtensions是否误写了 ID
跨平台同步时敏感字段和插件会被静默过滤
VS Code 同步过程对含机器路径或平台强依赖的配置项(如 python.defaultInterpreterPath、terminal.integrated.profiles.windows)和插件(如 ms-vscode.powershell)会直接跳过,不报错、不警告、也不写入冲突日志。你看到的 Synced 状态栏提示,只代表上传/下载动作完成,不代表内容完整落地。
容易踩的坑:你在 Windows 上配好 PowerShell 终端,同步到 macOS 后发现终端选项全空;或者 http.proxy 配置看似存在,实则没生效——都是因为这些字段被过滤了。
- 想保留某行路径配置?在
settings.json中该行上方加注释:// @sync false - 不想让某插件参与同步?在
settings.json中添加:"settingsSync.ignoredExtensions": ["ms-vscode.cpptools"] - 工作区级配置(
.vscode/settings.json)天然不同步,这是设计使然,别试图强行纳入
真正麻烦的从来不是“怎么同步”,而是“同步了什么、没同步什么、为什么没同步”。每次改完配置或装完插件,记得手动运行 Preferences: Sync: Upload Settings——它不会自动发生,也没后台守护进程帮你盯梢。











