VSCode 无浮动编辑器窗口,所谓“浮动”实为多个独立进程窗口;需通过任务管理器确认进程数,仅同源启动的窗口可被“Merge All Windows”合并,合并后须保存为 .code-workspace 文件固化布局。

VSCode 没有“浮动编辑器窗口”这个概念,所谓“浮动”,其实是独立进程的 VSCode 窗口(即任务管理器里多个 Code.exe 或 Electron 进程),必须用 Window: Merge All Windows 命令合并,拖拽无效。
怎么确认自己真有“浮动窗口”而不是标签页太多
很多人把标签栏挤满当成“窗口漂浮”,其实只是单进程内打开文件过多。真正要合并的,是操作系统级的独立窗口:
- Windows:按
Ctrl+Shift+Esc打开任务管理器 → “进程”页签 → 查看是否有多个Code.exe - macOS:打开“活动监视器” → 搜索
Electron→ 实例数是否 > 1 - 如果只有 1 个进程,但标签栏滚动条都出来了 → 该用分组 +
Ctrl+K Ctrl+W关组,不是合并窗口 - 如果有多个进程,且某个窗口只开了
package.json或README.md→ 这才是要合并的目标
为什么 Window: Merge All Windows 有时点不动
这个命令只对“同源启动、同用户会话”的窗口生效,常见失效原因有三个:
- 从 Dock / 开始菜单反复点击图标新开的窗口,系统可能分配新会话 → 改用命令行启动:
code --new-window /path/to/project - 双击文件(如
tsconfig.json)直接打开的窗口,常以临时工作区运行 → 此类窗口无法被合并,需先在其中执行File: Save Workspace As…固化为.code-workspace - 某些插件(如旧版
Project Manager)会拦截窗口创建 → 临时禁用插件后重试命令,再逐个启用排查 - 命令必须在你希望“保留为主窗口”的那个窗口中执行,且焦点必须落在它上面
拖拽合并失败?别怪鼠标,先查这三处
拖拽标签到另一个窗口顶部或侧边栏,90% 是白忙活——VSCode 不支持这种跨进程拖拽。唯一有效的拖拽,是把文件从一个窗口拖进另一个窗口的编辑器区域边缘(出现蓝色高亮框才松手):
- 确保设置
window.dragAndDropTabs为true(默认开启,但插件可能覆盖) - 拖拽目标必须是编辑器区左右/上下边缘,不是标题栏、资源管理器、终端面板
- macOS 用户注意:
Cmd+点击 Dock 图标启动的窗口比右键选 “New Window” 更容易被合并 - 更稳方案:不用拖拽,直接在源窗口右键文件标签 →
Move to Other Group→New Group,再切换到目标窗口操作
合并后布局怎么不消失
合并只是把文件收进来,但分组结构、编辑器宽度、终端位置等不会自动保存。下次重启又变回单列:
- 必须执行
File → Save Workspace As…,生成一个.code-workspace文件 - 编辑该文件,在
folders数组里补全所有项目路径,可选加settings固化布局参数 - 关闭所有窗口,双击这个
.code-workspace文件,或命令行运行code my.project.code-workspace - 别用
Add Folder to Workspace…,那是往当前窗口加目录,不是固化多窗口状态
真正麻烦的不是合并动作本身,而是合并前没确认进程数、合并后没保存工作区——这两个环节漏掉任何一个,等于白做。


















