vscode没有“合并窗口”功能,所谓合并实为将多进程窗口整合到同一实例的编辑器组中;需通过任务管理器确认多进程,再用window: merge all windows命令(仅限同会话同安装)或拖文件标签至目标窗口边缘实现。

VSCode根本没有“合并窗口”这个功能
别在命令面板里搜 Merge Windows 或 Join Windows——这些命令根本不存在。所谓“合并窗口”,实际是把多个独立进程的 VSCode 窗口(任务管理器里能看到多个 Code.exe 或 Electron 进程)收回到同一个实例的编辑器组中。如果你只开了一个 VSCode 进程,但标签栏堆满了几十个文件,那不是窗口问题,是标签管理问题,不该走“合并”路线。
判断是否真有多窗口:
- Windows:按
Ctrl+Shift+Esc打开任务管理器 → “进程”页签 → 数一数有几个Code.exe - macOS:打开“活动监视器” → 搜索
Electron→ 实例数是否大于 1
Window: Merge All Windows 命令只对特定场景有效
这个命令不是万能胶,它只在以下条件下生效:
- 所有窗口必须由同一用户会话、同一 VSCode 安装启动(比如都用
code --new-window /path启动) - 不能是从桌面图标反复点击新开的窗口(系统可能视为新会话),也不能是双击
package.json这类文件直接打开的临时窗口 - 命令必须在你希望保留为主窗口的那个窗口中执行,且焦点要落在该窗口上
- 某些插件(如旧版 GitLens)会干扰窗口创建逻辑,可尝试禁用后重试
如果命令点了没反应,大概率是启动方式或插件导致的兼容性问题,不是操作错了。
拖拽文件进目标窗口比拖窗口更可靠
很多人试图把整个窗口拖到另一个窗口上,结果失败率极高。真正稳定的做法是拖文件标签:
- 把源窗口里的文件标签,直接拖进目标窗口的 编辑器区域边缘(左右/上下边框出现蓝色高亮框时松手)
- 拖到侧边栏、标题栏或标签栏空白处,都不会触发分组,只会无响应或预览
- 拖入后默认新建标签页;想并排看,再按
Ctrl+\(Win/Linux)或Cmd+\(macOS)垂直分割当前组 - macOS 用户注意:
Cmd+点击 Dock 图标启动的窗口,比右键 Dock 选 “New Window” 更容易被Merge All Windows识别
用 .code-workspace 固化多项目布局才是长期解
频繁开多个窗口,本质是项目组织方式有问题。推荐用工作区统一管理:
- 在一个窗口中打开所有相关文件夹 →
File → Save Workspace As...→ 保存为.code-workspace文件 - 手动编辑该文件,在
folders数组里添加路径,支持相对路径(如"../backend")和绝对路径 - 下次直接双击这个
.code-workspace文件,所有文件夹、已打开的标签页、分组布局都会恢复 - Git 冲突解决后若用了
Accept All Changes,记得手动Ctrl+S保存,否则只是临时覆盖
真正容易被忽略的是:Window: Merge All Windows 不保存状态,也不影响工作区配置;而 .code-workspace 文件一旦生成,就承担了布局固化、跨设备同步、团队共享的全部责任——别把它当成备选项,它才是主线方案。











