VSCode没有“合并窗口”功能,本质是将多个进程的窗口内容整合到同一实例中;需通过任务管理器识别多个Code.exe或Electron进程,再用Window: Merge All Windows命令或拖拽至编辑器边缘实现合并。

VSCode 没有“合并窗口”这个功能,所谓合并,其实是把多个独立进程的窗口内容收进同一个 VSCode 实例里——不是靠快捷键一键搞定,而是靠识别进程状态、用对命令、拖对位置。
怎么判断真需要合并窗口?看任务管理器,不是看标签页
很多人误以为标签页太多就要“合并窗口”,其实那是标签管理问题,不是窗口问题。真正要合并的,是任务管理器里多个 Code.exe(Windows)或 Electron(macOS)进程:
- Windows:按
Ctrl+Shift+Esc打开任务管理器 → “进程”页签 → 数Code.exe有几个 - macOS:活动监视器搜索
Electron→ 看实例数是否 >1 - 只有 1 个进程但标签栏拥挤?该用编辑器分组 +
Ctrl+K Ctrl+W关闭未使用标签,不是合并窗口 - 多个进程且每个只开 1–2 个文件?这才是
Window: Merge All Windows的适用场景
Window: Merge All Windows 为什么经常不生效?
这个命令只对“同用户会话、同安装路径启动”的窗口有效,常见失效原因:
- 从 Dock 或开始菜单反复点击图标新开的窗口,系统可能视为新会话 → 改用命令行:
code --new-window /path/to/project - 双击文件(如
package.json)直接打开的窗口,常以临时工作区启动 →Window: Merge All Windows对它无效 - 某些插件(如旧版 GitLens)劫持窗口创建逻辑 → 临时禁用插件再试
- 命令必须在你希望保留的“主窗口”中执行,且焦点要落在该窗口上
拖拽合并失败?目标区域和设置比操作更重要
拖拽是最常用方式,但失败往往不是手慢,而是拖错了地方或配置被改过:
- 必须拖到“编辑器区域边缘”(左右/上下约 20px 内),出现蓝色高亮框才松手;拖到侧边栏、标题栏、标签栏空白处都无效
- 确认设置项
window.dragAndDropTabs为true(默认开启,但插件或手动修改可能关掉) - macOS 用户注意:Dock 右键选 “New Window” 启动的窗口,比 Cmd+点击 Dock 图标启动的更难被合并
- 拖一个文件标签到另一个窗口的标签栏上 → 不是触发对比,也不是合并,只是把它移到那个组里
比合并窗口更可持续的方案:用 .code-workspace 固化多项目布局
频繁合并窗口本质是治标,真正解决多任务管理,得靠工作区固化:
- 在任意窗口中执行
File → Save Workspace As…,生成my-app.code-workspace - 编辑该文件,在
folders数组里添加路径,用相对路径(如./backend)而非绝对路径,否则同事拉代码就打不开 - 关闭所有窗口,直接双击打开这个
.code-workspace文件,所有项目一次性加载,终端、调试、搜索全部跨项目可用 - 左下角状态栏显示
[Workspace]才算生效;如果只显示文件夹名,说明仍是单文件夹模式
真正容易被忽略的是:Window: Merge All Windows 不保存布局,下次重启照样散开;而 .code-workspace 文件可以提交到 Git,团队共用同一套结构——这才是多任务管理的落点。


















