VSCode没有“合并窗口”快捷键,但有Window: Merge All Windows命令,仅对同会话下同一实例启动的多个进程窗口生效;需确认任务管理器中Code.exe或Electron进程数大于1,且所有窗口由同一安装启动、未被识别为新会话。

VSCode 没有“合并窗口”的快捷键,但存在一个真实有效的命令:Window: Merge All Windows——它只对同会话下、由同一 VSCode 实例启动的多个独立进程窗口生效。
确认你真需要“合并窗口”,而不是整理标签页
很多人误以为标签栏塞满就是“多窗口”,其实只是单个窗口里打开了太多文件。真正要合并的,是任务管理器里显示的多个 Code.exe(Windows)或 Electron(macOS)进程:
- Windows:按
Ctrl+Shift+Esc打开任务管理器 → “进程”页签 → 查看Code.exe数量是否 >1 - macOS:打开“活动监视器” → 搜索
Electron→ 看实例数是否 >1 - 如果只有 1 个进程,但标签页混乱 → 该用分组 +
File: Save Workspace As固化布局,不是运行Window: Merge All Windows
执行 Window: Merge All Windows 的前提条件
这个命令看似简单,但失败率高,关键在启动方式和上下文:
- 必须在你希望“保留为主窗口”的那个窗口中执行命令(焦点要落在它上面)
- 所有待合并窗口必须由同一 VSCode 安装启动,且未被系统视为新会话:从 Dock/开始菜单反复点击图标新开的窗口常不满足条件
- 双击文件(如
package.json)直接打开的窗口,通常以临时工作区模式运行,Window: Merge All Windows对其无效 - 某些插件(如旧版 GitLens)会劫持窗口创建逻辑 → 临时禁用插件后重试
拖拽合并失败?别怪操作,先查这三处
即使命令不可用,拖拽仍是常用手段,但失败往往不是手速问题:
-
window.dragAndDropTabs设置必须为true(默认开启;若被插件覆盖或手动改过,需在设置中搜索并启用) - 拖拽目标必须是编辑器区域边缘(左右/上下),出现蓝色高亮框才松手;拖到资源管理器、标题栏或终端面板都会触发预览或嵌入,而非新建编辑器组
- macOS 用户注意:从 Dock 右键选 “New Window” 启动的窗口,与主窗口常不在同一会话,拖拽和命令均可能失效
更可靠替代方案:用工作区固化多项目布局
比起反复合并窗口,长期协作中更稳定的做法是放弃多窗口思维,改用 .code-workspace 文件统一管理:
- 在任一窗口中执行
File: Save Workspace As,保存为myproject.code-workspace - 手动编辑该文件,在
folders数组中添加多个路径(支持相对或绝对路径) - 关闭所有窗口,双击该
.code-workspace文件重新打开 → 所有项目在同一窗口中加载,分组、布局、打开文件全部还原 - 这个方式绕过了进程合并限制,也避免了 Git 冲突解决后因窗口分散导致的
git add遗漏
最易被忽略的一点:VSCode 的“窗口”概念在 UI 层和进程层完全错位。你以为在合并界面,其实是在协调多个操作系统级进程;而你以为在整理标签,却可能正踩进临时工作区的陷阱。动手前,先看一眼任务管理器。


















