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 个进程,但标签栏拥挤 → 这是标签管理问题,不是窗口问题,该用分组/预览关闭/工作区固化
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 - 手动编辑该 JSON 文件,在
folders数组中添加所有项目路径,例如:{"folders": [{"path":"./backend"}, {"path":"../frontend"}]} - 关闭所有窗口,双击这个
.code-workspace文件 —— 所有文件夹、上次打开的文件、分组布局全部还原 - 路径优先用相对路径;含空格或中文时,确保字符串用双引号包裹,不要用单引号
复杂点在于:跨窗口拖拽本身不报错也不提示,你只会发现文件没过去、原窗口还开着——纯属时间浪费。而工作区文件一旦写错路径或 JSON 格式,VSCode 会静默忽略新增文件夹,连警告都不给。











