vscode工作区是单窗口多项目管理替代方案,非合并多窗口;创建有效.code-workspace需满足:路径为相对路径、不以/开头或含盘符、路径真实存在且有读取权限。

工作区不是窗口合并,而是替代方案
VSCode 没有“合并窗口”这个动作,File > Save Workspace As… 创建的 .code-workspace 文件,本质是**放弃多窗口、改用单窗口多项目管理**。它不把已打开的多个独立窗口收进来,而是关掉所有窗口后,用一个新入口加载全部文件夹。如果你当前开着 3 个 VSCode 进程(任务管理器里看到多个 Code.exe 或 Electron),直接保存工作区不会影响那两个没关的窗口——它们依然独立运行。
创建有效 .code-workspace 的三个硬性条件
很多人保存完工作区却只看到一个文件夹,是因为 JSON 配置没过校验。VSCode 对 .code-workspace 文件极其严格,以下三点任一不满足,对应文件夹就会被静默忽略:
-
path值不能是绝对路径(如C:\project或/Users/me/project),必须用相对路径(如../backend或./src) -
path不能以/开头,也不能包含 Windows 盘符,否则整个条目失效 - 所有路径必须真实存在,且 VSCode 有读取权限;符号链接需启用
files.followSymlinks设置
工作区设置覆盖优先级容易误判
工作区级 settings 不是“全局+叠加”,而是有明确生效顺序:用户设置 .vscode/settings.json .vscode/settings.json。比如你在工作区 JSON 里写了 "editor.tabSize": 2,但 ../frontend/.vscode/settings.json 里写了 "editor.tabSize": 4,那么前端文件编辑时实际生效的是 4。这不是 bug,是设计——每个文件夹保持自己环境隔离。
关闭旧窗口后重新打开工作区才真正“整合”
别在已有窗口里点 File > Open Workspace 就以为完成了。正确流程是:
- 确认所有独立 VSCode 窗口都已关闭(任务管理器/活动监视器只剩 0 个
Code.exe/Electron进程) - 双击你的
my-team.code-workspace文件,或执行code my-team.code-workspace命令 - 打开后检查资源管理器顶部是否显示工作区名称(如
my-team (Workspace)),而不是单个文件夹名
如果仍看到单个文件夹,说明你没关干净旧进程,或者路径写错导致 VSCode 回退到单文件夹模式。这时候拖拽文件进来的操作,只是临时添加,下次重启就丢失——真正的整合只发生在工作区启动那一刻。











