vscode没有“合并窗口”功能,本质是将多个独立进程窗口内容收回到同一实例中;需通过任务管理器或活动监视器确认存在2个以上code.exe/electron进程才需合并,而非仅看标签页数量。

怎么判断真需要合并?看任务管理器,不是看标签栏
标签页多 ≠ 窗口多。真正要合并的是那些各自独占一个进程的 VSCode 窗口:
- Windows:按
Ctrl+Shift+Esc打开任务管理器 → “进程”页签 → 查看有几个Code.exe - macOS:打开“活动监视器” → 搜索
Electron→ 看实例数是否 >1 - 只有 1 个进程但标签挤满?那是标签管理问题,该用分组/预览关闭/
.code-workspace固化,不是合并 - 有 2+ 个进程,且其中某个窗口只开了 1–2 个文件?这才是
Window: Merge All Windows的目标场景
Window: Merge All Windows 命令为什么常失效?
这个命令只对“同用户会话、同安装路径启动的窗口”生效,踩坑点很具体:
- 从 Dock(macOS)或开始菜单反复点击图标新开的窗口,可能被系统视为新会话 → 改用命令行启动:
code --new-window /path/to/project - 双击
package.json等文件直接打开的窗口,常以临时工作区方式启动 →Window: Merge All Windows对其无效 - 某些插件(如旧版 GitLens)会劫持窗口创建逻辑 → 临时禁用插件后重试命令,再逐个排查
- 命令必须在**主窗口**(即你希望其他窗口都合入的那个)中执行,且焦点要落在它上面
拖拽合并失败?不是手速问题,是位置和设置错了
拖拽是最常用也最容易失败的方式,失败原因几乎都出在三处:
-
window.dragAndDropTabs必须为true(默认开启),若被插件或手动改过,需在设置中搜该配置项并启用 - 拖拽目标必须是“编辑器区域边缘”,不是标题栏、侧边栏或标签栏空白处 → 正确位置是编辑器区左右/上下边缘,出现蓝色高亮框才松手
- macOS 用户注意:从 Dock 右键选 “New Window” 启动的窗口,与
Cmd+点击 Dock 图标启动的行为不一致,后者更易被合并
合并后怎么不让布局散掉?用 .code-workspace 固化
合并只是临时操作,关掉再开又回到原样。真正防散架的方式是保存当前状态:
- 合并完成后,确保所有项目文件夹、编辑器分组、面板位置都调好
- 执行
File → Save Workspace As...,保存为.code-workspace文件 - 下次直接双击该文件,或运行
code your-project.code-workspace,所有窗口内容、分组、终端、输出面板都会原样恢复 - 注意:
.code-workspace是 JSON 格式,可手动编辑folders数组添加更多路径,支持相对/绝对路径











