vscode官方settings sync功能已彻底弃用,唯一可行方案是安装shan khan的settings sync扩展,通过github gist手动上传/下载配置,且必须启用extension sync、正确处理merge/replace、规避本地路径字段。

VSCode 官方内置的 Settings Sync 功能已在 2023 年底正式弃用,现在无法通过「Turn on Settings Sync」直接启用端到端同步。你看到的云朵图标或同步开关,实际是残留 UI,背后服务已下线——强行点击登录 GitHub 或 Microsoft 账户,大概率跳转失败、白屏、无响应,或提示“无法连接同步服务”。
Settings Sync: Turn On 命令为什么点不动
该命令仍存在于命令面板中,但底层服务已停运。即使 VSCode 版本 ≥ 1.90,使用 GitHub 账户登录也会卡在 OAuth 授权回调环节,因为 gist.github.com 的写入通道已被关闭。Microsoft 账户路径同样失效:微软已将同步能力完全收归 Azure DevOps 或 GitHub Copilot 配置体系,不再为通用设置提供独立同步后端。
- 现象:点击
Preferences: Turn on Settings Sync…后跳转空白页 / 反复重定向 / 控制台报ERR_CONNECTION_REFUSED - 验证方式:打开开发者工具(
Help → Toggle Developer Tools),切换到 Console 标签,执行await vscode.workspace.getConfiguration('sync').get('enabled'),返回undefined或false即确认未激活 - 别信“版本够新就能用”的旧教程——2026 年所有稳定版 VSCode(包括 1.90+)均不支持该功能原生运行
真正可用的替代方案只有 Settings Sync 扩展
目前唯一被社区广泛验证、持续维护、且与 VSCode 1.90 兼容的方案,是安装第三方扩展 Settings Sync(作者 Shan Khan)。它不依赖 VSCode 官方后端,而是直连 GitHub Gist 存储 JSON 配置快照,手动触发上传/下载即可生效。
- 安装后必须重启 VSCode,否则
Sync: Login不会出现 - 首次运行
Sync: Login时,GitHub 页面必须勾选gist权限(其他如user:email可选),否则后续Sync: Upload Settings会报错401 Unauthorized - 插件默认不同步扩展列表——需手动运行
Sync: Advanced Options → Toggle Extension Sync开启,否则extensions.json不上传 - 同步内容由本地
settings.json、keybindings.json、snippets/目录等文件决定,不加密,不自动 diff,每次Upload都是全量覆盖
同步不是自动的,必须手动上传和下载
这个扩展没有后台监听机制。你改了 settings.json、装了新插件、重绑了快捷键,另一台设备不会感知——除非你在当前设备上显式运行 Sync: Upload Settings,并在目标设备上运行 Sync: Download Settings。
- 上传前建议先运行
Sync: Show Output查看日志,确认是否成功生成 Gist ID(形如https://gist.github.com/xxxxx) - 下载时若提示 “No settings found”,检查 GitHub Token 是否过期(
Settings → Developer settings → Personal access tokens),或 Gist 是否被误删 - 两台设备同时修改并上传,不会自动合并——Gist 只保留最后一次上传的内容,历史不可回溯
- 工作区级配置(
.vscode/settings.json)天然不参与同步,这是设计行为,不是 bug
符号链接 + 云盘才是最稳的离线方案
如果你对网络认证敏感、身处企业内网、或需要毫秒级实时同步(比如改完快捷键立刻在另一台 Mac 上生效),符号链接是唯一不依赖任何账户或外部服务的方式。它把 VSCode 的整个 User 目录软链到 iCloud Drive / OneDrive / Syncthing 文件夹,操作系统负责文件级同步。
- macOS 路径:
~/Library/Application Support/Code/User - Windows 路径:
%APPDATA%\Code\User - 操作前必须关闭所有 VSCode 实例,否则链接可能损坏或被锁死
- 同步延迟取决于云盘客户端(iCloud 通常 2–5 秒,OneDrive 约 1–3 秒),比任何插件都快且确定
- 风险点:不要在多台设备同时编辑同一份
keybindings.json,云盘冲突合并可能导致 JSON 格式损坏,VSCode 启动失败
真正麻烦的从来不是“怎么开同步”,而是搞清哪些东西根本不能同步(比如终端 PATH、本地调试器路径、SSH 密钥路径)、哪些同步后会因平台差异失效(如 ms-vscode.cpptools 在 macOS 和 Windows 上需不同 ABI)、以及每次上传前要不要先备份旧 Gist —— 这些细节没人提醒,但一踩就卡半天。











