VS Code 1.84+已移除旧Settings Sync,启用新版需GitHub登录并勾选同步项;仅白名单内配置(如settings、keybindings)可同步,含本地路径或未声明sync的扩展配置将被忽略。

Settings Sync 在 VS Code 里已经停用了
VS Code 官方在 1.84 版本(2023 年 10 月)正式移除了内置的 Settings Sync 功能,现在它不再存在。你点设置里的“同步”选项卡,看到的其实是 GitHub 或 Microsoft 账户驱动的「Settings Sync v2」——但这个新机制不叫 Settings Sync,而是叫 Settings Sync(注意大小写和命名空间差异),底层完全重构,且默认只同步部分配置。
怎么启用新版 Settings Sync(GitHub 登录方式)
新版依赖 GitHub 账户(Microsoft 账户支持有限,尤其私有仓库、Gist 权限常出问题),不是插件也不是手动上传,是 VS Code 内置功能:
- 确保 VS Code 是 1.84+,打开命令面板(
Ctrl+Shift+P/Cmd+Shift+P),输入并运行Preferences: Turn On Settings Sync... - 选择登录方式:优先选
GitHub;如果选Microsoft,后续可能无法同步settings.json中的敏感字段(如git.postCommitCommand或自定义terminal.integrated.env.*) - 勾选要同步的内容:默认只开
Settings和Keybindings;Snippets和Extensions建议也勾上,否则换设备后要重装插件、重配代码片段 - 同步后,所有设备会自动拉取最新配置——但不会覆盖本地未提交的修改,也不会自动重启窗口
为什么有些配置没同步过去?常见漏项和原因
新版同步有明确白名单,不是所有 settings.json 字段都参与同步。以下几类容易“消失”:
-
files.excludes、search.exclude这类路径模式字段,因含本地绝对路径(如"**/node_modules/**"是 OK 的,但"/Users/xxx/project/node_modules/**"会被跳过) - 以
workbench.开头的部分 UI 设置(如workbench.colorTheme同步,但workbench.editor.closeOnFileDelete可能被忽略) - 扩展自己写的配置项:只有扩展声明了
sync: true在package.json的contributes.configuration.properties里,才会同步;比如editor.suggest.snippetsPreventQuickSuggestions可同步,但prettier.prettierPath(旧版 Prettier 插件)就不行 - 手动改过的
keybindings.json如果含非标准格式(如带注释、用单引号),同步时会被静默丢弃
同步失败或卡在“Signing in...”怎么办
这不是网络问题,大概率是认证权限或缓存冲突:
- 先运行
Developer: Toggle Developer Tools,看 Console 有没有报SyncServiceError或Gist not found——后者说明 GitHub token 没权限读写 Gist - 去 GitHub → Settings → Applications → Authorized OAuth Apps,找到
Visual Studio Code,点击进入,勾选Gists权限(必须) - 如果之前用过老版 Settings Sync(v1),先执行
Preferences: Turn Off Settings Sync,再彻底退出 VS Code,删掉~/.vscode-sync目录(macOS/Linux)或%USERPROFILE%\.vscode-sync(Windows) - 重开 VS Code,重新走一遍登录流程;别用“恢复上次同步”,直接“全新开启”更稳
同步本身不传 settings.json 原文件,而是序列化成结构化数据存到 GitHub Gist 或微软云;所以别指望它备份你手写的注释或临时调试配置——那些本来就不该进同步管道。










