VSCode无“合并窗口”功能,本质是将多进程窗口内容收回到同一实例编辑器组中;需通过任务管理器确认多进程、执行“Window: Merge All Windows”命令、拖拽至编辑器边缘蓝色框处,并保存为.code-workspace文件固化布局。

VSCode 没有“合并窗口”这个功能,所谓“把分开的编辑器窗口合并”,实际是把多个独立进程窗口(即任务管理器里多个 Code.exe 或 Electron 进程)的内容收回到同一个 VSCode 实例中。这事能不能成,取决于你启动这些窗口的方式,而不是拖拽技巧。
怎么判断要不要合并?看进程数,不是看标签多不多
很多人误以为标签栏挤满就是“该合并了”,其实不是:
- 单个窗口打开 30 个文件 → 是正常负载,该用分组+预览关闭+工作区固化,不该合并窗口
- 任务管理器里有多个
Code.exe(Windows)或多个Electron(macOS)→ 才是真正需要“合并”的场景 - 部分窗口只开了 1–2 个文件,且长期闲置 → 这类窗口最值得合入主窗口,省资源也少干扰
Window: Merge All Windows 命令为什么经常不生效
这个命令只对“同用户会话、同安装路径、非临时工作区启动”的窗口有效。常见失效原因:
- 从开始菜单/Dock 反复点击图标新开的窗口 → 系统可能视为新会话;改用命令行启动:
code --new-window /path/to/project - 双击
package.json等文件直接打开的窗口 → 默认以临时工作区启动,Window: Merge All Windows对其无效 - 插件劫持窗口逻辑(如旧版 GitLens、Project Manager)→ 临时禁用插件后重试
- 命令没在主窗口执行 → 必须先把焦点切到你想保留的那个窗口,再按
Ctrl+Shift+P输入并运行
拖拽合并失败?不是手速问题,是目标区域错了
拖拽只在编辑器区域边缘生效,其他地方全是“假动作”:
- 拖到左侧资源管理器区 → 触发预览,松手后关掉就消失
- 拖到顶部标签栏空白处 → 无反应,文件原地不动
- 拖到编辑器区左右/上下边缘 → 出现蓝色高亮框才松手,这才是正确位置
- macOS 用户注意:
Cmd+点击 Dock 图标启动的窗口比右键选 “New Window” 更容易被合并
真正稳的方案:用 .code-workspace 替代拼窗口
与其反复折腾合并,不如一步到位统一管理:
- 在任一窗口执行
File → Save Workspace As…,保存为my-project.code-workspace - 手动编辑该 JSON 文件,在
folders数组里添加路径:{"path": "backend"}, {"path": "../frontend"} - 关闭所有窗口,双击这个
.code-workspace文件 → 所有文件夹加载,上次打开的文件、分组布局全恢复 - 路径优先用相对路径;含空格或中文时,确保 JSON 字符串用双引号包裹,不能用单引号
复杂点在于:窗口是否可合并,根本不由你当前操作决定,而由它最初是怎么被启动的。很多“合并失败”本质是启动方式埋的雷,事后补救远不如一开始就用 code --new-window 或工作区启动。


















