VSCode没有“合并窗口”功能,本质是将多个进程的窗口内容整合到同一实例中;需通过任务管理器确认存在多个Code.exe或Electron进程,再用Window: Merge All Windows命令(仅对同用户、同路径启动的窗口生效),并确保拖拽至编辑器区域边缘,最后用.code-workspace文件固化布局。

VSCode 没有“合并窗口”这个功能,所谓合并,其实是把多个独立进程的窗口内容收回到同一个 VSCode 实例里——不是按钮点一下就完事,而是要先确认是不是真有多个进程、再用对命令、避开拖拽误区。
怎么判断要不要合并:看任务管理器,不是看标签栏
很多人标签页一多就慌着找“合并”,其实那只是单个窗口里的正常负载。真正该合并的,是任务管理器里多个 Code.exe(Windows)或 Electron(macOS)进程:
- Windows:按
Ctrl+Shift+Esc打开任务管理器 → “进程”页签 → 查Code.exe数量 - macOS:打开“活动监视器” → 搜索
Electron→ 看实例数是否 >1 - 只有 1 个进程但标签满屏?→ 改用编辑器分组 +
Ctrl+Tab切换,别折腾合并 - 多个进程且每个只开了 1–2 个文件?→ 这才是
Window: Merge All Windows的适用场景
Window: Merge All Windows 命令为什么经常不生效
这个命令只对“同用户会话、同一安装路径启动”的窗口有效,失效基本逃不开这三个原因:
- 从 Dock / 开始菜单反复点击图标新开的窗口,系统可能视为新会话 → 改用命令行启动:
code --new-window /path/to/project - 双击文件(如
package.json)直接打开的窗口,常以临时工作区方式启动 → 这类窗口无法被合并,需手动拖文件进去 - 某些插件(如旧版 GitLens、Project Manager)劫持窗口创建逻辑 → 临时禁用插件后重试命令,再逐个排查
- 命令必须在你希望保留的“主窗口”中执行,且焦点要落在该窗口上
拖拽合并失败?重点检查三处细节
鼠标拖拽是最常用也最容易失败的方式,问题往往出在配置或落点上:
-
window.dragAndDropTabs必须为true(默认开启),若被插件或手动改过,需在设置中搜索并启用 - 拖拽目标必须是“编辑器区域边缘”,不是标题栏、不是侧边栏:拖到左侧资源管理器区 → 只触发预览;拖到顶部空白标签栏 → 无反应;正确位置是编辑器区左右/上下边缘,出现蓝色高亮框才松手
- macOS 用户注意:
Dock右键选 “New Window” 启动的窗口,比Cmd+点击 Dock 图标启动的更难被合并,后者成功率更高
合并后布局留不住?必须用 .code-workspace 固化
哪怕你成功合并了所有窗口、分好了左右上下组,关掉再打开照样变回单列——VSCode 默认不保存空编辑器组和分组比例:
- 菜单栏 →
File → Save Workspace As…→ 保存为.code-workspace文件 - 编辑该文件,在
"folders"数组里补全所有项目路径(支持相对/绝对路径) - 下次直接双击这个
.code-workspace文件,或运行code my-project.code-workspace,布局 100% 还原 - 别用
File → Add Folder to Workspace…,那是往当前窗口加目录,不是固化布局
真正容易被忽略的点是:合并操作本身不解决标签爆炸问题,它只处理多进程窗口。如果你已经有几十个标签页在单个窗口里,下一步该做的是分组 + 工作区保存 + 定期清理,而不是反复尝试合并。


















