vscode无直接合并窗口功能,本质是将多进程窗口内容收回到同一实例的编辑器组中;需通过任务管理器确认多进程、执行“window: merge all windows”命令、拖拽至编辑器边缘蓝色框处,并保存为.code-workspace文件固化布局。

VSCode 没有“合并窗口”功能,所谓“窗口太多”,大概率是开了多个独立进程(即多个 Code.exe 或 Electron 实例),而不是标签页太多。先确认是不是真有多进程,再决定要不要、能不能合并。
怎么判断是不是真有多个 VSCode 窗口进程
很多人把标签栏挤满当成“窗口爆炸”,其实只是标签管理问题;真正要合并的,是任务管理器里并存的多个 VSCode 进程:
- Windows:按
Ctrl+Shift+Esc打开任务管理器 → “进程”页签 → 查看Code.exe是否 >1 个 - 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、Project Manager)劫持窗口创建逻辑 → 临时禁用插件后重试命令
- 命令必须在你希望“被合入”的那个主窗口中执行,且焦点必须落在该窗口上
拖拽合并失败?重点检查这三处
鼠标拖拽是最常用也最容易失败的方式,失败往往不是手速问题,而是配置或区域误判:
-
window.dragAndDropTabs必须为true(默认开启),若被插件或手动改过,需在设置中搜索该配置项并启用 - 拖拽目标必须是“编辑器区域边缘”,不是标题栏、侧边栏或资源管理器区 → 正确位置是编辑器左右/上下边缘,出现蓝色高亮框才松手
- macOS 用户注意:从 Dock 右键选 “New Window” 启动的窗口,与
Cmd+点击 Dock 图标启动的行为不一致,后者更易被合并
比合并窗口更稳的长期方案:用 .code-workspace 固化布局
靠拖拽或命令临时合并,重启后就丢;真正省心的做法,是把多个项目/文件夹统一纳入一个工作区文件:
- 任意窗口中 →
File → Save Workspace As…→ 保存为my-project.code-workspace - 编辑该文件,在
folders数组里添加所有路径(支持相对或绝对路径) - 关闭所有窗口 → 双击该
.code-workspace文件,或运行code my-project.code-workspace - 所有文件夹、已打开的文件、分组结构、终端面板位置全部还原,且跨重启稳定
别用 File → Add Folder to Workspace…,那是往当前窗口加目录,不是替代多窗口的方案;真正的多项目协同,靠的是工作区,不是窗口数量。











