应合并当且仅当任务管理器显示多个Code.exe(Win)或Electron(macOS)进程,且各窗口仅开1–2个无关联文件;若仅单进程则属标签管理问题,宜用分组或工作区而非合并。

怎么判断该不该合并?先看是不是真有多个窗口进程
VSCode 的“合并窗口”不是把标签页收拢,而是把多个独立进程的窗口内容归并到一个实例里。如果任务管理器里只看到一个 Code.exe(Windows)或 Electron(macOS),那根本不存在“多窗口”问题——只是标签页太多,该用分组或工作区管理,而不是合并。
只有当出现以下情况时,才需要执行合并操作:
- Windows 下任务管理器中存在多个
Code.exe进程 - macOS 活动监视器中显示多个
Electron实例 - 每个窗口只开了 1–2 个文件,且彼此无关联(比如一个开
frontend/,另一个开backend/)
Window: Merge All Windows 命令为什么经常不生效?
这个命令看似简单,但实际依赖三个隐性前提,缺一不可:
- 所有窗口必须由同一 VSCode 安装启动(通过命令行
code --new-window /path启动最稳;双击文件或 Dock 右键 New Window 容易被系统隔离为新会话) - 不能是“临时工作区”窗口(例如直接双击
package.json打开的窗口,Window: Merge All Windows对其完全无效) - 命令必须在你希望保留为主窗口的那个实例中执行,且焦点要落在它上面;若在错误窗口执行,其他窗口不会响应
插件也可能干扰:旧版 GitLens 或 Project Manager 会劫持窗口创建逻辑。建议先禁用插件重试,再逐个启用排查。
拖拽合并失败?别怪手速,先检查这三处
拖拽是最直观的方式,但失败往往不是操作问题,而是目标区域或配置不对:
-
window.dragAndDropTabs必须为true(默认开启,但某些插件或手动修改可能关掉,可在设置中搜索该配置项确认) - 拖拽目标必须是编辑器区域边缘(左右/上下约 20px 范围),出现蓝色高亮框才能松手;拖到资源管理器、标题栏或标签栏空白处均无效
- macOS 用户注意:
Cmd + 点击 Dock 图标启动的窗口比右键选 “New Window” 更容易被识别为可合并;后者常被系统视为隔离会话
真正可靠的长期方案:用 .code-workspace 固化多根工作区
手动合并窗口是一次性操作,下次重启又回到原点。唯一能固化状态、跨设备复用、团队共享的方式,是显式保存为 .code-workspace 文件:
- 打开一个窗口,依次执行
File → Add Folder to Workspace…加入所有项目路径 - 务必执行
File → Save Workspace As…,存为my-system.code-workspace;不保存 = 临时会话,关窗即丢 - 路径写相对路径(如
"path": "../backend"),并把.code-workspace放在所有项目共同父目录下,否则同事拉代码后会报path does not exist - 保存后左下角状态栏应显示
[Workspace],且资源管理器顶部出现多个带名称的根目录标签(如frontend、backend)
最容易被忽略的是:即使你已添加了五个文件夹,只要没点“保存工作区为…”,它们就只是内存里的幻影——下次打开 VSCode,一切归零。


















