最可靠方式是用 Ctrl+Shift+N(Win/Linux)或 Cmd+Shift+N(macOS)直接打开新窗口;VSCode 多窗口即多进程,彼此隔离,适合处理完全无关项目。

直接打开新窗口最可靠
VSCode 的“多个编辑器窗口”本质是多个独立进程,彼此不共享状态。想同时处理两个完全无关的项目(比如前端工程和 Python 脚本),就该开两个窗口,而不是硬塞进一个里。
- 用
Ctrl + Shift + N(Windows/Linux)或Cmd + Shift + N(macOS)最快,比菜单点三下更稳 - 命令行中进入另一个项目目录,执行
code .也会自动弹出新窗口——但注意:如果 VSCode 已在后台运行且启用了“在单实例中打开”,它可能强行复用旧窗口;此时加--new参数强制新开:code --new . - 右键任务栏图标选“新建窗口”也行,但某些 Linux 桌面环境(如 GNOME)可能屏蔽该选项,别依赖它
误用拖拽合并窗口会白忙活
很多人试图把一个 VSCode 窗口的标签栏拖到另一个窗口顶部,指望“吸过去”变成分组。这操作在多数 VSCode 版本(尤其是 1.85+)和 macOS 上基本失效,结果往往是生成第三个窗口,或直接卡住标签。
- 拖拽只对“同一窗口内的文件标签”有效:拖一个标签到当前窗口边缘,才能创建新编辑器组
- 跨窗口拖拽失败时,VSCode 不报错也不提示,你只会发现文件没过去、原窗口还开着——纯属时间浪费
- 真想统一管理多个项目?走工作区路线,不是拼窗口
用 .code-workspace 替代多窗口才是正解
当你需要频繁切换几个关联项目(比如微服务的 user-service 和 auth-service),开多个窗口反而增加任务栏干扰,也丢失共用设置和调试上下文。
- 在任一窗口中,选
文件 → 将工作区另存为…,保存为my-microservices.code-workspace - 手动编辑该 JSON 文件,在
folders数组里添加路径:{"folders": [{"path": "user-service"}, {"path": "../auth-service"}]} - 关闭所有窗口,双击这个
.code-workspace文件——所有文件夹加载、上次打开的文件、分组布局全恢复 - 注意:路径用相对路径更便携;若含空格或中文,确保 JSON 字符串用双引号包裹,不要用单引号
分屏不是窗口,别混用场景
垂直拆分(Ctrl + \)或两列布局,解决的是“看/改多个相关文件”的问题,比如一边写 index.ts 一边看 index.test.ts。它和“开多个窗口”是不同维度的事。
- 分屏内所有编辑器共享同一个工作区、同一套设置、同一个调试会话——窗口之间完全隔离
- 想对比两个 Git 分支?用
Ctrl + \拆分后,在右边运行Git: Compare with Branch…,比开两个窗口再切分支快得多 - 分屏太多(比如四列)会导致每列宽度不足,预览模式(
workbench.editor.enablePreview)容易误触发,建议关掉它避免标签被覆盖










