VS Code Settings Sync 配置文件与设备范围
来源:17golang原创
时间:2026-10-28 08:54:51 347浏览 收藏
VS Code 的 Settings Sync 适合把同一套用户级配置带到多台本地设备,但它不会把当前项目的工作区文件、远程窗口状态都变成“全局设置”。正确做法是先选同步类别,再按用户设置、工作区设置和设备范围逐项判断。
官方地址:https://code.visualstudio.com/docs/configure/settings-sync
- Settings Sync 同步的是勾选的数据类别,Settings 与 Extensions 可以单独开关。
- 用户 settings.json 可跨本地设备同步,工作区 settings.json 只服务当前项目。
- SSH、开发容器和 WSL 等远程窗口不会按本地设备的方式同步扩展;冲突要先完成合并。
先把同步范围选清楚
点击左下角管理齿轮,选择 Backup and Sync Settings...,也可以从 Activity Bar 底部的账户菜单进入。首次开启时登录 Microsoft 或 GitHub 账户,然后在配置选择器中勾选需要的类别。常用项包括 Settings、Keyboard Shortcuts、Snippets、Tasks、UI State、Extensions 和 Profiles。
开启完成后,管理齿轮中的状态会显示 Settings Sync is On。此时不要只看图标判断成功,重新打开 Settings Sync: Configure...,确认要同步的类别仍然被选中。Settings Sync 负责后台合并本地与云端数据,首次在新设备开启时可能出现合并提示。

配置文件和工作区文件不是一回事
VS Code 的用户设置作用于打开的各个实例,工作区设置则保存在项目的 .vscode/settings.json 或多根工作区配置中,只对该项目生效。Settings Sync 主要处理用户级数据,所以把某个项目的格式化规则写入工作区后,不会因为同步开启就自动覆盖另一台设备的所有项目。
需要跨设备带走的是个人偏好时,使用命令面板运行 Preferences: Open User Settings (JSON);需要只影响当前仓库时,运行 Preferences: Open Workspace Settings (JSON)。判断方法很简单:设置编辑器顶部的 User 与 Workspace 标签分别对应两种范围。这里先别急着把所有内容都放进用户设置,团队项目的 lint、格式化或路径规则通常应留在仓库内。
如果使用 Profiles,打开 Settings Sync: Configure... 并勾选 Profiles,配置文件及其所选类别才会在设备间出现。当前配置属于哪个 Profile,可以从管理齿轮的 Profiles 菜单确认。

用排除项控制不该传播的内容
有些设置跟机器、系统或本地路径绑定,不适合跨设备。可以在设置编辑器中搜索 settingsSync.ignoredSettings,将指定设置加入排除列表;扩展则使用 settingsSync.ignoredExtensions。这两个键是控制同步清单的补充,不是删除本机设置。
例如下面的 JSON 只表达排除列表,必须保持合法 JSON;数组中的键名要换成你实际不想同步的设置:
{
"settingsSync.ignoredSettings": ["示例设置键"],
"settingsSync.ignoredExtensions": ["示例扩展标识"]
}
如果两台设备的快捷键希望完全一致,在设置中关闭 settingsSync.keybindingsPerPlatform;默认情况下快捷键会按操作系统分别同步。还要注意,Settings、Keyboard Shortcuts 和 User Tasks 各有 100 KB 限制,Profiles 最多同步 20 个,超过限制时受影响类别会报告错误并暂停。
第二台设备和远程窗口怎么核对
在另一台本地 VS Code 中使用同一账户开启同步,打开 Settings Sync: Show Synced Data,展开 Synced Machines 查看设备记录。设备名称基于操作系统和 Stable 或 Insiders 构建,Stable 与 Insiders 默认使用不同的同步服务;混用时应在 Insiders 中明确选择 Stable 服务,并留意版本兼容性。
SSH、devcontainer 和 WSL 属于远程窗口,官方说明明确指出扩展不会从远程窗口同步到本地或反向同步。因此“远程窗口没有自动安装扩展”不等于 Settings Sync 失效。先回到本地窗口确认 Settings Sync 状态,再在远程环境按项目需求安装扩展。
首次启用或离线修改后出现冲突时,选择 Accept Local、Accept Remote,或打开 Show Conflicts 手动合并。完成后到 Output 面板选择 Log (Settings Sync);登录问题则查看 Account 通道。冲突提示消失且日志不再出现同类错误,才算完成核对。
常见问题
为什么工作区 settings.json 没有出现在另一台设备?
因为它是项目范围配置,不属于用户级同步清单。把项目文件提交到仓库,或在另一台设备打开同一项目,才是共享工作区配置的合适方式。
为什么远程 SSH 窗口没有同步扩展?
远程窗口不按本地设备同步扩展。Settings Sync 开启成功并不能替代远程环境的扩展安装。
Settings Sync 和 Settings Sync 扩展是同一个功能吗?
不是。VS Code 内置 Settings Sync 使用 Microsoft 或 GitHub 账户;名为 Settings Sync 的第三方扩展可能使用自己的存储方式,配置入口和数据边界不同。
最后可按“Settings Sync is On → Configure 类别 → User/Workspace 范围 → Synced Machines → Output 日志”的顺序复查。这样能把“没有同步”拆成类别未勾选、范围不匹配、远程窗口限制或冲突未完成四种具体原因。
-
501 收藏
-
501 收藏
-
501 收藏
-
501 收藏
-
501 收藏
-
188 收藏
-
448 收藏
-
228 收藏
-
271 收藏
-
358 收藏
-
316 收藏
-
214 收藏
-
491 收藏
-
325 收藏
-
200 收藏
-
315 收藏
-
350 收藏
-
- 前端进阶之JavaScript设计模式
- 设计模式是开发人员在软件开发过程中面临一般问题时的解决方案,代表了最佳的实践。本课程的主打内容包括JS常见设计模式以及具体应用场景,打造一站式知识长龙服务,适合有JS基础的同学学习。
- 立即学习 543次学习
-
- GO语言核心编程课程
- 本课程采用真实案例,全面具体可落地,从理论到实践,一步一步将GO核心编程技术、编程思想、底层实现融会贯通,使学习者贴近时代脉搏,做IT互联网时代的弄潮儿。
- 立即学习 516次学习
-
- 简单聊聊mysql8与网络通信
- 如有问题加微信:Le-studyg;在课程中,我们将首先介绍MySQL8的新特性,包括性能优化、安全增强、新数据类型等,帮助学生快速熟悉MySQL8的最新功能。接着,我们将深入解析MySQL的网络通信机制,包括协议、连接管理、数据传输等,让
- 立即学习 500次学习
-
- JavaScript正则表达式基础与实战
- 在任何一门编程语言中,正则表达式,都是一项重要的知识,它提供了高效的字符串匹配与捕获机制,可以极大的简化程序设计。
- 立即学习 487次学习
-
- 从零制作响应式网站—Grid布局
- 本系列教程将展示从零制作一个假想的网络科技公司官网,分为导航,轮播,关于我们,成功案例,服务流程,团队介绍,数据部分,公司动态,底部信息等内容区块。网站整体采用CSSGrid布局,支持响应式,有流畅过渡和展现动画。
- 立即学习 485次学习