VSCode无“合并窗口”功能,拖拽实为将文件标签拖入另一窗口编辑器边缘蓝色框内以共存于同一进程;需先确认任务管理器中存在多个Code.exe/Electron进程,拖拽仅在编辑器区四边蓝色高亮时有效,且须确保dragAndDropTabs启用、主窗口聚焦,并保存为.code-workspace文件固化布局。

VSCode没有“合并窗口”功能,所谓拖拽合并,其实是把一个窗口里的文件标签拖进另一个窗口的编辑器区域,让它们共存于同一进程实例中。操作本身简单,但失败率高,多数是因为拖错了位置、没识别真实窗口状态,或配置被插件干扰。
怎么判断该不该拖拽?先看是不是真有多个窗口
很多人误以为标签页太多就是“多窗口”,其实只是单个窗口内标签过载。真正需要拖拽合并的,是任务管理器里显示多个 Code.exe(Windows)或 Electron(macOS)进程的情况:
- Windows:按
Ctrl+Shift+Esc打开任务管理器 → “进程”页签 → 查看Code.exe数量 - macOS:打开“活动监视器” → 搜索
Electron→ 看实例数是否大于 1 - 如果只有 1 个进程,但标签栏拥挤 → 应用分组 + 关闭预览标签,而不是拖拽窗口
拖到哪里才有效?只认编辑器边缘的蓝色框
拖拽失败最常见原因,是目标位置不对。VSCode 只在编辑器区域(即代码显示区)的左右/上下边缘响应拖拽合并,出现蓝色高亮框才是正确位置:
- ❌ 拖到左侧资源管理器区 → 触发文件预览,不新建标签
- ❌ 拖到顶部标签栏空白处 → 完全无反应
- ❌ 拖到侧边栏任意位置 → 不触发合并逻辑
- ✅ 正确做法:将文件标签拖至目标窗口编辑器区左/右/上/下边缘,等蓝色框出现后再松手
为什么拖了没反应?检查这三个关键点
即使拖对了位置,仍可能失败。核心原因集中在配置、启动方式和焦点上:
-
window.dragAndDropTabs必须为true(默认开启),若被插件或手动改过,需在设置中搜索并启用 - 命令
Window: Merge All Windows必须在你希望保留的“主窗口”中执行,且该窗口必须处于焦点状态 - 从 Dock 右键选 “New Window” 启动的窗口,在 macOS 上常无法被合并;改用
code --new-window /path或 Cmd+点击 Dock 图标更可靠
拖完就完事了?别漏掉保存布局这一步
拖拽只是临时整合,关掉 VSCode 后所有分组、标签顺序都会丢失。要固化成果,必须保存为工作区:
- 执行
File → Save Workspace As… - 保存为
.code-workspace文件(如my-project.code-workspace) - 编辑该文件,在
"folders"中确认路径正确,必要时补充相对路径 - 下次直接双击这个文件打开,所有窗口内容、分组、标签顺序都会原样恢复
真正的难点不在拖,而在识别哪些是可合并的独立进程、拖对那个像素级的蓝色框、以及记得把当前状态固化下来——这三步缺一不可。


















