VSCode没有合并窗口的底层机制,所谓合并实为迁移文件并关闭原窗口;需先通过任务管理器或活动监视器确认存在多个Code.exe/Electron进程,再在主窗口执行Window: Merge All Windows命令或拖拽文件标签至编辑器边缘。

VSCode 没有“合并两个窗口”的底层机制,所谓合并,其实是把一个窗口里的文件迁移到另一个窗口的编辑器组中,并关闭原窗口。关键不是找按钮,而是识别进程、选对目标窗口、避开拖拽陷阱。
怎么确认真有两个可合并的窗口
很多人以为标签页多=窗口多,其实真正要合并的是独立进程:
- Windows:按
Ctrl+Shift+Esc打开任务管理器 → “进程”页签 → 查看是否有多个Code.exe - macOS:打开活动监视器 → 搜索
Electron→ 看实例数是否 >1 - 如果只有 1 个进程,但标签栏拥挤 → 这是标签管理问题,不该走“合并窗口”流程
- 如果有多个进程,且某个窗口只开了 1–2 个文件 → 这才是
Window: Merge All Windows的适用场景
用 Window: Merge All Windows 命令(最接近“合并”)
这个命令只对同用户会话、同安装路径启动的窗口有效,容易失败的三个原因:
- 从 Dock 或开始菜单反复点击图标新开的窗口,可能被系统视为新会话 → 改用命令行:
code --new-window /path/to/project - 双击文件(如
package.json)直接打开的窗口,常以临时工作区启动 →Window: Merge All Windows对其无效 - 某些插件(如旧版 GitLens)劫持窗口创建逻辑 → 临时禁用插件后重试
- 命令必须在你希望保留的“主窗口”中执行,且该窗口需处于焦点状态
拖拽文件到目标窗口(最稳的手动方式)
别拖标题栏,也别拖资源管理器里的文件——那是系统级拖放,VSCode 不会分组:
- 从源窗口中,拖拽已打开的**文件标签**(就是顶部那个带文件名的 tab)
- 目标位置必须是**编辑器区域边缘约 20px 内**(左右/上下),出现蓝色高亮框才松手
- 拖到左侧资源管理器区 → 只触发预览;拖到顶部空白标签栏 → 无反应
- 拖入成功后,文件会在目标窗口新建标签页;再按
Ctrl+\(Win/Linux)或Cmd+\(macOS)垂直分栏,实现并排查看
长期建议:用 .code-workspace 固化多项目布局
频繁合并窗口说明你在跨项目协作——这时手动操作只是权宜之计:
- 在任一窗口执行
File → Save Workspace As…,保存为my-projects.code-workspace - 编辑该 JSON 文件,在
folders数组里添加所有项目路径(相对路径优先) - 关闭所有窗口,直接双击打开这个
.code-workspace文件,所有项目自动加载到同一窗口 - 注意:
settings是共享的,若需差异化配置,得靠扩展(如 Settings Sync)或脚本管理
真正难的不是操作,而是判断:该合并窗口,还是该关掉一个、改用工作区?多数人卡在第一步——没确认是不是真有多个进程,就反复拖拽标题栏,结果生成第三个窗口。


















