应先通过任务管理器(windows)或活动监视器(macos)确认是否存在多个code.exe/electron进程;仅当进程数>1时才需合并窗口,否则属标签管理问题,宜用分组、预览关闭或工作区固化。

怎么判断该不该合并窗口
先看任务管理器:Windows 按 Ctrl+Shift+Esc,找多个 Code.exe 进程;macOS 打开活动监视器,搜 Electron,看实例数是否大于 1。只有多个进程时,“合并窗口”才有意义。如果只是标签栏堆满几十个文件,但进程只有一个,那不是窗口问题,是标签管理问题——该用分组、预览关闭或工作区固化,而不是强行合并。
Window: Merge All Windows 命令为什么没反应
这个命令只对“同用户会话、同安装路径启动的窗口”生效,常见失效原因有三个:
- 从 Dock 或开始菜单反复点击图标新开的窗口,系统可能视为新会话 → 改用终端执行
code --new-window /path/to/project启动 - 双击文件(如
package.json)直接打开的窗口,常以临时工作区方式启动,Window: Merge All Windows对其无效 - 某些插件(如旧版 GitLens)会劫持窗口创建逻辑 → 临时禁用插件后重试,再逐个排查
命令必须在你希望保留为主窗口的那个窗口中执行,且焦点要落在它上面。
拖拽合并失败?关键看三处细节
拖拽是最常用也最容易失败的操作,失败往往不是手速问题:
-
window.dragAndDropTabs必须为true(默认开启),若被插件或手动改过,需在设置里搜该配置项并启用 - 拖拽目标必须是“编辑器区域边缘”,不是标题栏、侧边栏或资源管理器区:拖到左侧 → 只触发预览;拖到顶部空白处 → 无反应;正确位置是编辑器区左右/上下边缘,出现蓝色高亮框才松手
- macOS 用户注意:Dock 右键选 “New Window” 启动的窗口,与
Cmd+点击Dock 图标启动的行为不一致,后者更易被合并
真正保留所有打开文件的可靠方式是工作区
靠拖拽或命令合并窗口,顶多把标签页搬过去,但分组结构、折叠状态、终端会话、调试配置等都容易丢失。最稳的做法是放弃“合并”,改用工作区固化当前状态:
- 在任意一个窗口中,执行
File > Save Workspace As,保存为.code-workspace文件 - 编辑该文件,在
"folders"数组里补全所有你正在处理的项目路径(支持相对或绝对路径) - 关闭所有窗口,再双击打开这个
.code-workspace文件 —— 所有文件、分组、终端、Git 状态都会按原样恢复
这比反复拖拽更可靠,尤其当你有多个项目夹、多个终端、带断点的调试会话时,工作区才是唯一能完整保留上下文的方式。











