VSCode设置分用户级(全局)和工作区级(项目专属),工作区设置优先级更高且覆盖同名用户设置;用户设置存于主目录settings.json,适合字体、主题等统一偏好;工作区设置存于项目.vscode/settings.json并纳入Git,用于Prettier、ESLint等项目特有配置。

用户设置是全局生效的,影响你打开的所有项目;工作区设置只对当前文件夹(即打开的根目录)起作用,优先级更高,会覆盖同名的用户设置。
用户设置适合统一偏好
比如字体大小、主题、是否自动保存、默认终端类型、常用快捷键映射等。这些你希望在所有项目里保持一致,就该写在用户设置里。
- 修改路径:菜单栏 文件 → 首选项 → 设置(Windows/Linux)或 Code → 首选项 → 设置(macOS)
- 实际存储位置:用户主目录下的
settings.json(如~/.vscode/settings.json或%APPDATA%\Code\User\settings.json) - 适合团队中“个人习惯”类配置,不随项目变动
工作区设置用于项目特有规则
比如某个前端项目要求用 Prettier 格式化、禁用某扩展、设置特定的 ESLint 配置路径、或启用调试器的 launch 参数——这些和项目强绑定,换个项目就不适用了。
- 生成方式:在 VSCode 中打开一个文件夹后,点击左下角齿轮图标 → 打开工作区设置(JSON),会自动生成
.vscode/settings.json - 该文件通常纳入 Git 版本管理,让团队成员开箱即用相同编辑体验
- 可配合
.vscode/extensions.json推荐扩展、launch.json配置调试、tasks.json定义构建任务
优先级与冲突处理
VSCode 按照「工作区 > 用户 > 默认」三级叠加设置。如果同一项(如 "editor.tabSize")在用户和工作区都设置了,以工作区值为准。
- 在设置 UI 中,右侧显示的是最终生效值,左侧灰色文字是被覆盖的用户/默认值
- 搜索设置时,勾选 “工作区” 或 “用户” 可单独筛选范围
- 想临时禁用某条工作区设置?注释掉对应行即可,不用删,方便回退
什么时候该用哪个?简单判断法
问自己一个问题:这个设置,是不是“离开这个文件夹就没意义”?
- 是 → 放工作区(
.vscode/settings.json) - 否 → 放用户设置(全局)
- 不确定?先放用户,后续遇到项目差异再抽到工作区
基本上就这些。不复杂但容易忽略——很多协作问题,其实只是工作区设置没提交,或者误把项目专用配置写进了用户层。









