工作区配置仅对当前项目生效,通过.vscode/settings.json叠加覆盖全局设置,且不干扰其他项目;需确保其位于项目根目录、以文件夹方式打开、设置编辑器显示Workspace标签,并正确添加配置项。

工作区配置只对当前项目生效,关键在 .vscode/settings.json 的作用域
VSCode 的工作区配置不是“开关式”隔离,而是优先级覆盖:工作区 settings.json 会**叠加并覆盖**全局设置,但仅限于该文件夹及其子目录。它不会修改、删除或干扰其他项目的任何配置。
常见错误现象:settings.json 写了 "editor.tabSize": 2,结果打开另一个项目时也变成 2 —— 这说明你误改了全局设置(用户设置),或者没在正确路径下创建工作区配置。
- 确保
.vscode文件夹位于项目根目录(即你用 VSCode 打开的文件夹) - 确认你打开的是「文件夹」而非单个文件:菜单栏 File → Open Folder…,不是 Open File…
- 检查设置编辑器右上角是否显示 Workspace 标签(而不是 User)
避免误触全局设置的实操要点
VSCode 设置编辑器默认打开的是用户设置(全局)。很多人直接点「Edit in settings.json」就写进去了,结果所有项目都受影响。
正确做法是:先在设置搜索框输入想配的项(比如 python.defaultInterpreterPath),找到后点击右侧的 Folder icon(图标为文件夹+齿轮),再点「Add to Workspace Settings」。
- 手动编辑时,
.vscode/settings.json必须是纯 JSON 对象,不能有注释(VSCode 不支持 JSONC 在工作区配置中解析) - 不要复制粘贴用户设置里的整个 JSON 块——只保留真正需要差异化配置的键值对
- 敏感配置如
files.exclude、search.exclude在工作区里设错会导致文件树/搜索不显示内容,建议逐项测试
.vscode/settings.json 和 .vscode/extensions.json 的分工
很多人以为装插件也要写进工作区配置,其实不是:插件本身是全局安装的,但 .vscode/extensions.json 是用来**推荐**团队成员安装哪些插件,不影响运行时行为。
而 settings.json 控制实际行为,比如 Python 项目要指定解释器路径、ESLint 规则、格式化工具等。
-
extensions.json只有recommendations字段,内容是字符串数组,例如["ms-python.python", "esbenp.prettier-vscode"] -
settings.json中若出现"python.defaultInterpreterPath",必须填绝对路径(如"./venv/bin/python"或"/Users/me/project/venv/bin/python"),相对路径不生效 - Windows 下路径分隔符用正斜杠
/更稳妥(VSCode 内部统一处理),避免双反斜杠\引发转义问题
Git 提交 .vscode 的取舍和风险
工作区配置可提交到 Git,但不是所有内容都适合:团队协作时,开发环境共性配置(如缩进、行尾、语言相关 lint 路径)值得共享;个性化偏好(如主题、字体大小、终端颜色)则不该提交。
容易踩的坑是把本地调试配置(如 launch.json)直接提交,结果别人拉下来一按 F5 就报错——因为路径、端口、环境变量都不一样。
- 推荐只提交
settings.json中与项目构建/校验强相关的项,例如eslint.enable、prettier.requireConfig、typescript.preferences.importModuleSpecifier -
launch.json和tasks.json默认不被 Git 跟踪,如果真要共享,请用configurations的presentation或env字段做最小化、可覆盖的设计 - 用
git ls-files .vscode定期检查哪些文件被意外纳入版本控制
.vscode 的查找逻辑——它只认最外层工作区根目录下的 .vscode,子文件夹里的会被无视。


















