VS Code中真正“同时打开”多个文件夹需使用.code-workspace工作区:先打开一个文件夹,再逐个“添加到工作区”,最后“将工作区另存为”;右键移除文件夹可安全隐藏而不丢失配置,settings.json分用户、工作区、文件夹三层作用域。

用 .code-workspace 才算真正“同时打开”多个文件夹
VS Code 本身不支持“一次打开多个独立文件夹并持久保留”的操作——直接拖拽多个文件夹进去,或反复点 文件 → 打开文件夹,只会不断切换根目录,上一个就丢了。所谓“同时打开”,必须走工作区(workspace)机制,生成一个 xxx.code-workspace 文件,它才是你多项目管理的唯一可靠载体。
- 先打开任意一个项目文件夹(
文件 → 打开文件夹) - 再执行
文件 → 将文件夹添加到工作区,逐个加入其他项目文件夹 - 最后务必执行
文件 → 将工作区另存为,保存为my-projects.code-workspace这类名字 - 之后双击这个
.code-workspace文件,所有文件夹才真正一起加载、可持久复现
右键“将文件夹从工作区中移除”比关窗口更关键
很多人加完文件夹就以为万事大吉,结果某天误点了 文件 → 关闭文件夹 或直接关了窗口,整个工作区结构就没了。其实,每个文件夹在资源管理器里都是可独立控制的:右键它 → 将文件夹从工作区中移除,只是隐藏该路径,不删文件、不改配置、也不影响其他文件夹——这才是日常增删调试项目的正确姿势。
- 临时查看依赖源码?用
将文件夹添加到工作区加进来,完事右键移除 - 不想让某个文件夹触发 ESLint?右键它 →
Configure Extension Settings,单独关掉eslint.enable - 移除后工作区标题栏仍显示“无标题(工作区)”,说明结构还在;只有关闭窗口且没保存过
.code-workspace,才会彻底丢失
settings.json 的三层作用域,搞错就白配
你在不同地方改设置,生效范围完全不同:用户级(全局)工作区级(.code-workspace 里的 "settings")文件夹级(各项目内 .vscode/settings.json)。比如你想让 Vue 项目用 2 空格缩进、Python 项目用 4 空格,就必须把 "editor.tabSize": 4 写进 Python 文件夹的 .vscode/settings.json,而不是塞进工作区配置里。
- 统一禁用某插件推荐?写在
.code-workspace的"settings"顶层:"extensions.ignoreRecommendations": true - 只对某个语言生效的格式化设置?必须用语言 ID 块,例如:
"[typescript]": { "editor.formatOnSave": true },不能直接写"editor.formatOnSave": true - 检查谁在起作用?打开任一文件,按
Ctrl+,搜索设置项,右侧会标出来源是Folder、Workspace还是User
别把 node_modules 或 dist 文件夹拖进工作区
有人图省事,把整个父目录(含一堆构建产物和依赖)直接加进工作区,结果搜索变卡、Git 面板刷不出状态、ESLint 在 .d.ts 上疯狂报错。VS Code 的多根工作区不是文件浏览器,它是开发上下文容器——只应包含你主动编辑、调试、提交的源码目录。
- 确认每个加入的文件夹都对应一个独立 Git 仓库或明确子模块
- 若某文件夹只是读取用(如 SDK 源码),加进去后立刻右键 →
将文件夹从工作区中移除,别让它长期驻留 - 已在工作区但想过滤内容?在对应文件夹的
.vscode/settings.json里加:"files.exclude": { "**/node_modules": true, "**/dist": true }
.code-workspace,等于没开始管理。









