VSCode不能直接合并窗口,需通过保存为.code-workspace文件将多个项目收至同一窗口;仅当任务管理器显示多个Code.exe/Electron进程时才需合并,否则应优化标签管理。

VSCode 不能直接“合并窗口”,但能把你分散在多个窗口里的项目,收进同一个窗口的不同根目录下——前提是必须保存为 .code-workspace 文件,否则所有添加的文件夹都是临时的,关掉就丢。
怎么确认当前是不是真需要合并?
先看任务管理器(Windows)或活动监视器(macOS),搜 Code.exe 或 Electron:如果只看到 1 个进程,说明你只是标签页太多,该优化标签管理(比如分组、预览关闭、设为活动文件夹);如果有多个进程,且每个窗口只开了 1–2 个文件,这才是要合并的典型场景。
用 File → Add Folder to Workspace… 为什么经常失效?
这个操作本身没问题,但容易踩三个坑:
- 没点
File → Save Workspace As…→ 所有添加的文件夹只是内存里的临时状态,重启 VSCode 就清空 - 资源管理器顶部没出现多个带名称的根目录标签(如
frontend、backend)→ 说明还没进入多根工作区模式 - 右键任意根目录,选项里只有
Close Folder,没有Remove Folder from Workspace→ 那它只是被拖进来的普通标签页,不是工作区成员
保存 .code-workspace 时路径怎么写才靠谱?
路径写错会导致别人或你自己换机器打开时报 path does not exist:
- 绝对路径(如
/Users/name/project)→ 本地能开,协作必挂 - 纯文件名(如
project)→ VSCode 默认从当前工作区文件所在目录解析,但容易误判 - 推荐写法:用相对路径,把
.code-workspace放在所有项目的共同父目录下,例如"path": "backend"或"path": "../shared-lib"
保存后,务必重新用 VSCode 打开这个 .code-workspace 文件,而不是继续在原窗口里点“打开文件夹”。
合并后调试和终端总在错的项目里启动?
多根工作区没有自动切换的“当前项目”,只有手动设置的“活动文件夹(Active Folder)”:
- 默认取
folders数组第一个路径作为活动文件夹,不会随你编辑的文件自动变 - 右键资源管理器中某个根目录 → 选
Set as Active Folder,才能让终端、launch.json、ESLint 配置按它来生效 - 终端默认在活动文件夹下启动;想为
backend开终端,就得先设它为活动文件夹,或右键该文件夹选Open in Integrated Terminal
最常被忽略的一点:即使你把五个项目都加进来了,只要没点“将工作区另存为…”,它们就只是浮在内存里的幻影——下次打开 VSCode,一切归零。


















