VSCode分栏是同一窗口内的编辑器组布局,而独立窗口是多个Code.exe进程;合并窗口需用“Window: Merge All Windows”命令,前提是同安装启动、非临时工作区、焦点在目标窗口,并确保dragAndDropTabs开启且拖拽至编辑器边缘;长期协作应使用.code-workspace文件统一管理多项目、分组与打开状态。

VSCode分栏(编辑器组)和“窗口”是两回事
很多人说的“分栏后合并窗口”,其实混淆了两个概念:编辑器组(即左右/上下分屏)和真正的独立窗口(任务管理器里多个Code.exe或Electron进程)。分栏只是同一窗口内的布局变化,根本不需要“合并”——它本来就是一个窗口。真正要合并的,是多个脱离的 VSCode 窗口实例。
想把多个独立窗口收进一个窗口?用 Window: Merge All Windows
这个命令只在主窗口中有效,且有明确前提:
- 所有窗口必须由同一 VSCode 安装启动(避免从 Dock/开始菜单反复点击图标,改用
code --new-window /path启动) - 不能是双击文件直接打开的“临时工作区”窗口(这类窗口对
Merge All Windows无效) - 焦点必须落在你希望保留的那个窗口上,再按
Ctrl+Shift+P(Win/Linux)或Cmd+Shift+P(Mac),输入并执行该命令 - 某些插件(如旧版 GitLens)可能拦截窗口逻辑,可先禁用插件再试
拖拽文件标签到目标窗口失败?检查这三处
这是最常用也最容易卡住的操作,失败往往不是手速问题:
- 确认
window.dragAndDropTabs设置为true(默认开启,但部分插件或手动修改可能关掉) - 拖拽目标必须是编辑器区域边缘(出现蓝色高亮框才算对),拖到侧边栏、标题栏或标签栏空白处都无效
- macOS 用户注意:从 Dock 右键选 “New Window” 启动的窗口,比 Cmd+点击 Dock 图标启动的更难被识别为可合并会话
长期多人协作或跨项目开发?别拼窗口,用 .code-workspace
靠拖拽或命令临时合并,治标不治本。真正稳定的做法是放弃多窗口思维,转向工作区管理:
- 在一个窗口中执行
File > Save Workspace As...,保存为myproject.code-workspace - 手动编辑该文件,在
"folders"数组里添加多个路径(支持相对路径、绝对路径) - 关闭所有窗口,直接双击这个
.code-workspace文件——所有项目文件夹、已打开文件、分组布局都会原样恢复 - 这个文件可提交到 Git,团队成员开箱即用,彻底规避窗口散落问题
容易被忽略的一点:分组布局和文件打开状态只有在工作区模式下才能完整固化;单文件夹模式下,哪怕你精心调好了三列分屏,重启后大概率回退成单组。


















