VSCode中“合并项目窗口”实为创建多根工作区(.code-workspace文件),需手动保存并重新打开;活动文件夹决定终端路径、调试配置等行为,未保存前所有操作均不持久。

VSCode 没有“合并项目窗口”的按钮或命令,所谓“把多个项目集中到一个窗口”,本质是创建并加载一个多根工作区(.code-workspace 文件),而不是把已打开的多个独立窗口物理缝合。
确认你真需要多根工作区,而不是多窗口
先看任务管理器(Windows)或活动监视器(macOS):如果只有 1 个 Code.exe 或 Electron 进程,但开了好几个文件夹 → 你当前只是在单窗口里误操作“添加文件夹到工作区”,没保存,关掉就丢;如果有多个进程 → 那些是真正隔离的窗口,Window: Merge All Windows 才可能生效,但仅限同源启动的窗口。
- 多窗口适合:项目间完全无关、扩展/终端/调试互不干扰(如同时写前端和学 Rust)
- 多根工作区适合:微服务、前后端联调、跨项目引用(如
frontend+backend+shared)
必须手动创建并保存 .code-workspace 文件
VSCode 不会自动把“已打开的多个文件夹”转成持久化工作区。点 File → Add Folder to Workspace… 只是临时添加,不保存就等于没做。
- 正确流程:打开任意一个项目窗口 →
File → Save Workspace As…→ 命名为my-system.code-workspace - 然后手动编辑该 JSON 文件,在
"folders"数组里加路径:{"path": "frontend"}、{"path": "../backend"} - 路径必须是相对 workspace 文件位置的(推荐),绝对路径会导致别人打不开
- 保存后,**必须关闭所有窗口,再双击这个
.code-workspace文件重新打开**
打开后检查是否真生效
别只看侧边栏有没有多个文件夹图标——那可能是残留标签页。关键看三处:
- 资源管理器顶部是否显示多个带名称的根目录标签(如
frontend、backend),且每个右侧有下拉箭头 - 右键任一目录 → 出现
Remove Folder from Workspace(不是Close Folder) - 按
Ctrl+Shift+P输入Developer: Toggle Developer Tools,Console 无path does not exist报错
活动文件夹决定一切行为
多根工作区里没有“全局当前项目”。launch.json、终端起始路径、ESLint 配置、甚至 Ctrl+P 搜索范围,都取决于“活动文件夹”(Active Folder)。
- 默认取
"folders"数组中第一个路径为活动文件夹 - 不会随你当前编辑的文件自动切换 → 必须右键某个根目录 →
Set as Active Folder - 终端默认在活动文件夹下启动;想进
backend终端,就得先设它为活动文件夹,或右键该目录选Open in Integrated Terminal
最容易被忽略的是:没保存 .code-workspace 文件前的所有操作,包括已打开的标签页、分组布局、终端历史,全都不持久。一旦保存,它就成了整个开发上下文的唯一事实来源——下次打开,连你昨天关掉前高亮的搜索结果都会还原。


















