v

VSCode没有“合并窗口”功能,所谓合并,本质是把多个独立进程的窗口内容收回到一个实例中,并用 .code-workspace 文件固化当前多文件夹、多编辑器组的状态。不保存为工作区文件,所有分组和文件夹添加操作都会在关闭窗口后丢失。
怎么判断该不该合并窗口?看任务管理器里的进程数
很多人误把标签页多当成“窗口爆炸”,其实真正需要合并的是多个 VSCode 进程:
- Windows:按
Ctrl+Shift+Esc打开任务管理器 → “进程”页签里查Code.exe数量 - macOS:打开“活动监视器” → 搜索
Electron→ 看实例数是否 >1 - 只有 1 个进程但标签栏拥挤 → 不是窗口问题,该用分组+预览关闭+
Ctrl+P快速跳转 - 多个进程且部分窗口只开了 1–2 个文件 → 这才是
Window: Merge All Windows的适用场景
Window: Merge All Windows 命令为什么有时不生效?
这个命令只对“同用户会话、同一安装路径启动”的窗口有效,容易踩三个坑:
- 从 Dock / 开始菜单反复点击图标新开的窗口,常被系统视为新会话 → 改用命令行启动:
code --new-window /path/to/project - 双击文件(如
package.json)直接打开的窗口,多为临时工作区 →Window: Merge All Windows对其无效 - 某些插件(如旧版 GitLens)劫持窗口创建逻辑 → 临时禁用插件后重试命令,再逐个排查
- 命令必须在**主窗口**执行:即你希望其他窗口都合入的那个窗口,焦点要落在它上面
必须显式保存为 .code-workspace 才算真正合并
即使成功执行了 Window: Merge All Windows,如果没保存工作区,下次重启仍是单项目状态:
- 执行
File → Save Workspace As…,路径选好后务必以.code-workspace为后缀保存 - 手动编辑该文件,在
folders数组里确认所有路径都已写入,例如:{ "folders": [ { "path": "." }, { "path": "../backend" }, { "path": "../shared" } ] } - 关闭所有窗口,双击刚保存的
.code-workspace文件重新打开 —— 此时才算完成可复现的“合并” - 未保存的工作区状态无法支持调试配置、终端默认路径、扩展设置同步等关键能力
最容易被忽略的一点:拖拽标签页到另一个窗口只是移动文件,不等于建立多根工作区;只有 .code-workspace 文件存在且被加载,VSCode 才会识别为真正的多项目上下文。











