vscode无“合并窗口”功能,本质是将多进程窗口内容收至同一实例;需先通过任务管理器(windows查code.exe、macos查electron实例数)确认是否真有多个进程,仅当进程数>1且为同会话启动时,才可执行window: merge all windows命令或拖拽至编辑器边缘蓝色框处,并保存为.code-workspace文件固化布局。

VSCode 没有“合并窗口”这个功能,所谓合并,其实是把多个独立进程的窗口内容收回到一个 VSCode 实例里——关键不是找按钮,而是先确认是不是真有多个窗口,再用对命令或拖拽动作。
怎么判断当前是不是多个 VSCode 进程?
很多人标签页一多就慌着“合并”,其实只是单个窗口负载高。真正要合并的,是任务管理器里显示的多个 Code.exe(Windows)或 Electron(macOS)进程:
- Windows:按
Ctrl+Shift+Esc打开任务管理器 → “进程”页签 → 查看Code.exe数量 - macOS:打开“活动监视器” → 搜索
Electron→ 看实例数是否 >1 - 只有 1 个进程但标签栏拥挤 → 不是窗口问题,该优化分组或用
Ctrl+P快速跳转 - 多个进程且部分窗口只开了 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” 启动的窗口,有时不响应拖拽合并 → 改用
code --new-window启动更可靠
合并后如何固化布局,避免下次重启又散开?
合并只是临时操作,关掉窗口再打开,一切又回到原点。真正防散开的方式是保存为多根工作区:
- 合并完成后,执行
File → Save Workspace As…,保存为.code-workspace文件 - 该文件会记录所有打开的文件夹路径、编辑器分组状态、甚至终端会话(取决于设置)
- 下次直接双击这个文件,或运行
code my-projects.code-workspace,就能完整还原 - 注意:路径尽量用相对路径;绝对路径跨平台时容易失效
最易被忽略的一点:合并窗口 ≠ 整理标签页。如果你只有一个进程但开了 30 个文件,Window: Merge All Windows 根本不会出现,这时候该做的是分组 + 预览关闭 + 工作区固化,而不是到处找“合并”按钮。











