VSCode无直接合并窗口功能,本质是将多个独立进程窗口的内容收回到同一实例的编辑器组中;需先通过任务管理器确认存在≥2个Code.exe或Electron进程,再在主窗口执行“Window: Merge All Windows”命令或拖拽文件至目标窗口编辑区边缘蓝色框处,并推荐用.code-workspace文件固化布局。

VSCode 没有“合并窗口”功能,所谓合并,本质是把多个独立进程的窗口内容收回到同一个 VSCode 实例中——不识别进程状态就操作,90% 的失败都源于此。
怎么确认真有多个窗口要合并
关键不是标签多,而是进程多。打开任务管理器(Windows:Ctrl+Shift+Esc;macOS:活动监视器),搜 Code.exe 或 Electron:
- 若只看到 1 个进程 → 标签栏拥挤是标签管理问题,不该走“合并”流程
- 若看到 ≥2 个进程,且其中某些窗口只开了 1–2 个文件 → 这才是
Window: Merge All Windows的适用场景 - 双击文件(如
package.json)直接打开的窗口,常为临时工作区,该命令对其无效
为什么 Window: Merge All Windows 不生效
这个命令不是万能胶,只对同用户会话、同一安装路径启动的窗口有效。常见失效原因:
- 从 Dock / 开始菜单反复点击图标新开的窗口,可能被系统判为新会话 → 改用命令行启动:
code --new-window /path/to/project - 某些插件(如旧版 GitLens、Project Manager)劫持窗口创建逻辑 → 临时禁用插件后重试
- 命令必须在你希望“作为主窗口接收其他内容”的那个窗口中执行,且该窗口需有焦点
拖拽合并失败?检查这三处硬性条件
拖文件标签到目标窗口编辑区是最常用方式,但失败往往卡在细节:
-
window.dragAndDropTabs必须为true(默认开启,但插件或手动修改可能关掉) - 拖拽目标必须是编辑器区域边缘(左右/上下边框出现蓝色高亮框才松手),拖到侧边栏、标题栏或标签栏空白处均无效
- macOS 用户注意:从 Dock 右键选 “New Window” 启动的窗口,常无法被拖入 → 改用
code --new-window启动
比合并更稳的长期方案:.code-workspace 固化布局
靠命令或拖拽合并只是临时解法。真正防复发、保一致的方式是用工作区文件固化所有打开的文件夹和分组结构:
- 菜单栏 →
File → Save Workspace As…,保存为my-project.code-workspace - 手动编辑该文件,在
folders数组中添加全部项目路径(支持相对/绝对路径) - 关闭所有窗口,双击该
.code-workspace文件,或运行code my-project.code-workspace - 所有文件夹、编辑器分组、终端分屏、面板布局全部还原 —— 这才是 VSCode 原生推荐的工作流
真正的难点不在操作步骤,而在于区分“进程级窗口”和“编辑器组”这两个概念。很多人花半小时折腾拖拽,其实根本没打开任务管理器看一眼进程数——那不是操作问题,是前提误判。


















