vscode没有“合并窗口”内置命令,所谓合并实为将多进程窗口的文件标签拖入主窗口编辑器组;需先确认存在多个code.exe/electron进程,再用拖拽或window: merge all windows(仅同会话有效)操作。

“合并窗口”根本不存在,别搜这个命令
VSCode 没有 Merge Windows、Join Windows 或类似名称的内置命令。你在命令面板(Ctrl+Shift+P)里输这些词,结果一定是“未找到命令”。这不是你配置错了,是它压根没实现这个功能。所谓“合并”,实际是把独立窗口里的文件标签“搬进”主窗口的编辑器组中,而不是进程级合并。
确认你真有多个窗口进程,再决定怎么做
很多人误以为标签页太多就是“要合并窗口”,其实真正需要操作的是多个 VSCode 进程:
- Windows:打开任务管理器 → “进程”页签 → 查看是否有多个
Code.exe - macOS:打开活动监视器 → 搜索
Electron→ 看实例数是否 >1 - 如果只有 1 个进程,但标签栏拥挤 → 该用分组/预览关闭/工作区固化,不是合并
- 如果有多个进程,且其中某些窗口只开了 1–2 个文件 → 才值得执行
Window: Merge All Windows
注意:Window: Merge All Windows 只对同用户会话、同安装路径启动的窗口生效。从桌面图标反复点击、或双击文件直接打开的窗口,常被识别为独立会话,命令无效。
拖拽文件到目标窗口编辑区才是稳解
这是最可靠、兼容性最好的方式,不依赖进程关系,也不受插件干扰:
- 把源窗口的文件标签,直接拖到目标窗口的编辑器区域边缘(左右或上下边),出现蓝色高亮框时松手
- 拖到侧边栏、标题栏、资源管理器区 → 不触发新建标签,只会预览或无反应
- 拖到目标窗口已有标签页上 → 默认是“移动到该组”,不是对比;如需对比,请用
File: Compare Active File With - 拖完后,可用
Ctrl+\(Win/Linux)或Cmd+\(Mac)垂直分割目标窗口,再把其他文件拖进去并排看
合并后想固化布局?用 .code-workspace
靠拖拽和分组临时整合容易散架,尤其重启后。真正防丢的方案是转成工作区:
- 在已整合好的窗口中,执行
File → Save Workspace As…,保存为.code-workspace文件 - 手动编辑该文件,在
folders数组里添加所有项目路径(支持相对路径,如"../backend") - 下次直接双击这个文件,所有文件夹、编辑器分组、甚至终端状态都会还原
- 注意:不要依赖“自动保存布局”,VSCode 不记录分组内具体打开了哪些文件,只记分组数量和大小
最易忽略的一点:Window: Merge All Windows 命令必须在你希望保留的“主窗口”中执行,且该窗口焦点要处于激活状态——否则命令看似执行了,实际什么也没发生。











