VSCode跨设备同步插件需手动启用Extensions同步并确认勾选,同步仅传输清单不自动安装,须手动刷新扩展面板触发安装;状态栏云图标灰色表示未启用,GitHub Token缺gist权限会导致静默失败。

VSCode 跨设备同步插件,不是登录账户就自动装好——它只同步 extensions.json 列表,不触发安装动作,也不报错提示失败。你得手动点、手动等、手动查。
同步后插件没装上?检查 Sync: On 状态和 Extensions 勾选项
状态栏左下角的云图标是灰色(Sync: Off)还是蓝色(Sync: On),直接决定是否在同步。灰色 = 没启用,哪怕你登了 GitHub 也没用。
更关键的是:首次启用 Settings Sync 时弹出的「Choose what to sync」面板里,Extensions 必须被勾选。这个选项默认可能没打勾,漏掉就等于没开插件同步。
- 按
Ctrl+Shift+P(Win/Linux)或Cmd+Shift+P(macOS),输入Preferences: Turn on Settings Sync…重新触发设置面板 - 确认勾选了
Extensions,再点“启用” - 如果已启用但插件仍缺失,运行
Sync: Upload Settings强制重传当前列表
下载完为啥没自动安装?等右下角横幅或手动刷新扩展面板
VSCode 同步的是“该装哪些插件”的清单,不是安装包本身。它会在右下角弹出 Extensions to install 横幅,或者在扩展视图顶部显示 Recommended extensions 区域——但不会静默安装,也不会卡在 Installing… 状态不动。
- 如果没看到横幅,打开扩展视图(
Ctrl+Shift+X),点右上角刷新按钮(↻)强制拉取安装队列 - 某些平台专属扩展(如
ms-vscode.powershell)在 macOS 或 Linux 上会被跳过,不提示、不报错、不占位 - 若
extensions.autoUpdate设为false,同步后已装插件也不会自动升级,需手动点更新
同步内容不全?重点检查 ignoredExtensions 和敏感路径过滤
settingsSync.ignoredExtensions 是个隐藏开关,一旦在 settings.json 里写了,对应插件就彻底从同步流程中消失,连列表都不传。另外,VSCode 会静默跳过含机器依赖的字段,比如 python.defaultInterpreterPath,你在新设备上打开 settings.json 会发现它是空的,但毫无提示。
- 搜索
settingsSync.ignoredExtensions,确认没误加进去了不该忽略的插件 ID(如esbenp.prettier-vscode) - 被过滤的典型字段包括:
terminal.integrated.profiles.windows、http.proxy、telemetry.enableTelemetry - 想保留某行配置又不让它同步?加注释:
"python.defaultInterpreterPath":"/usr/local/bin/python3",// @sync false
GitHub Token 权限不对,同步会卡在 silent fail
Settings Sync(无论是内置还是 Shan Khan 扩展)都依赖 GitHub Token 的 gist 权限读写私有 Gist。缺权限不会弹红字报错,只会上传/下载时卡住、超时、或返回空数据——你看到“Synced”,其实什么都没传过去。
- 去
https://github.com/settings/tokens检查 Token 权限,必须包含:gist、user:email、read:user - Token 类型选
Classic tokens,不要用 Fine-grained tokens(它们不支持 gist scope) - 企业网络可能拦截
gist.github.com请求,可打开开发者工具(Developer: Toggle Developer Tools)看 Console 是否有Failed to fetch
最常被忽略的一点:同步不是双向实时监听。改了快捷键、装了新插件、删了旧扩展,都得手动运行 Sync: Upload Settings;另一台设备也得手动点 Sync: Download Settings,否则永远不同步。


















