VSCode无“合并窗口”功能,本质是将多进程窗口内容收至同一实例的编辑器组;需先通过任务管理器确认多进程,再执行Window: Merge All Windows命令或拖拽至编辑器边缘蓝色框处,并保存为.code-workspace文件固化布局。

VSCode 没有“合并窗口”这个功能,所谓合并,其实是把多个独立进程窗口的内容收进同一个 VSCode 实例的编辑器组里——不是按钮点一下就完事,得先确认是不是真有多个窗口进程,再选对命令或拖拽位置。
怎么判断该不该合并?看任务管理器,不是看标签栏
很多人标签页一多就急着“合并”,其实只是单个窗口里打开了太多文件,这属于标签管理问题,不是窗口合并问题。真正需要合并的,是操作系统级的多个 VSCode 进程:
- Windows:按
Ctrl+Shift+Esc打开任务管理器 → “进程”页签 → 查找多个Code.exe - macOS:打开活动监视器 → 搜索
Electron→ 看实例数是否大于 1 - 如果只有 1 个进程,但标签栏滚动不停 → 该用分组 +
Ctrl+K Ctrl+W关组 + 工作区固化,而不是找合并
Window: Merge All Windows 命令为什么有时不生效?
这个命令只对“同用户会话、同安装路径启动”的窗口有效,常见失效原因有三个:
- 从 Dock(macOS)或开始菜单反复点击图标新开的窗口,可能被系统视为新会话 → 改用命令行启动:
code --new-window /path/to/project - 双击文件(如
package.json)直接打开的窗口,常以临时工作区方式启动 → 这类窗口无法被合并,需手动拖文件进去 - 某些插件(如旧版 GitLens)会劫持窗口创建逻辑 → 临时禁用插件后重试,再逐个排查
- 命令必须在你希望保留的“主窗口”中执行,且焦点要落在该窗口上
拖拽合并失败?不是手速问题,是目标区域错了
拖拽是最常用操作,但失败往往因为没对准正确区域。VSCode 只在编辑器区域边缘出现蓝色高亮框时才接受拖入新建组:
- 拖到资源管理器(侧边栏)→ 触发预览模式,松手即消失,不进编辑器组
- 拖到顶部标签栏空白处 → 无反应
- 拖到终端或输出面板 → 文件被误嵌入面板,实际未进入编辑器组
- 拖拽时没按
Shift→ 默认是复制,原组仍保留;想“移动”过去,必须按住Shift再拖 - 更稳妥做法:右键文件标签 → 选
Split Right或Split Down,不依赖视觉反馈
长期布局怎么不丢?靠 .code-workspace,不是靠设置
即使你成功合并了窗口、分好了三列、调好了比例,重启 VSCode 后大概率还原成单列——因为默认不保存编辑器组结构。唯一可靠固化方式是保存工作区:
- 菜单栏 →
File → Save Workspace As…→ 保存为.code-workspace文件 - 编辑该文件,在
folders数组里添加所有项目路径(支持相对/绝对路径) - 下次直接双击这个文件,或运行
code my-project.code-workspace,布局 100% 还原 -
"workbench.editor.restoreViewState": true只存折叠状态和滚动位置,不存组数和比例,别指望它
最易被忽略的一点:合并后 Git 状态、调试会话、终端进程都只存在于当前窗口实例内,跨窗口的终端或调试器不会互通——这不是 bug,是设计。想并排看代码又保持上下文一致,垂直分组(Ctrl+\)永远比开两个窗口靠谱。


















