官方settings sync是省心可靠的迁移方式,端到端加密、自动同步、跨平台;需确认右下角☁️图标显示“sync is on”,另一设备选download and merge;插件仅同步id列表,依赖本地环境下载二进制;工作区设置(.vscode/settings.json)默认不同步,敏感路径和字段被静默跳过;jupyter kernel等需单独配置。

直接用官方 Settings Sync 就行,不用手动备份 settings.json 或搬运 .vscode\extensions 目录——它端到端加密、自动同步、跨平台安全,是目前最省心也最可靠的迁移方式。
Settings Sync 开启后没生效?先看右下角云图标
很多人点完 Turn on Settings Sync 就以为完事了,其实关键在验证是否真正激活:
- 右下角状态栏必须出现☁️图标,鼠标悬停显示
Sync is on及最近同步时间;若显示Not signed in,说明授权失败或网络未通 - 另一台设备登录同一 GitHub / Microsoft 账户后,必须选
Download and merge,不是Cancel或Reset and sync - 同步完成后运行命令
Sync: Show Summary,可确认哪些扩展/设置被跳过(比如含本地路径的设置会被自动过滤)
为什么有些插件没装上?不是同步失败,是环境不匹配
Settings Sync 只同步「已安装插件的 ID 列表」,不传输二进制文件本身。插件能否真正启用,取决于本地环境:
-
rust-analyzer、pylance等需下载平台专属二进制,首次打开对应语言项目时才会触发拉取 - Windows 上装的
Cortex-Debug扩展,在 macOS 上不会自动启用,因为调试器依赖本地openocd或pyocd二进制 - 离线环境或企业防火墙限制下,同步会卡在扩展安装环节,此时需手动导出+安装:
code --list-extensions > extensions.txt,再用code --install-extension批量恢复
工作区设置(.vscode/settings.json)不会同步,这是设计,不是 bug
VSCode 明确区分用户级和工作区级配置。Settings Sync 默认只同步用户级 settings.json,所有项目根目录下的 .vscode/settings.json 都被排除:
- 这是为了防止个人偏好污染团队共享配置,比如你设的
editor.tabSize: 4不该覆盖项目要求的2 - 如果你硬要同步某项目设置,得把它挪到用户级,或改用
python.defaultInterpreterPath这类支持变量的写法,例如:"${workspaceFolder}/.venv/bin/python" - 含敏感字段(如
http.proxy、git.postCommitCommand)或绝对路径(如C:\Users\name\.npmrc)的设置,也会被静默跳过
真正容易被忽略的是:Settings Sync 不处理 Jupyter kernel、终端默认 Python、调试器 launch 配置这三处——它们各自独立刷新,选了解释器不等于 kernel 就换了,得单独运行 Python: Select Interpreter 并确认 kernel 已注册。











