vscode 项目快速切换依赖 .code-workspace 文件、命令面板和系统窗口管理协同实现。需通过 workspaces: create workspace 创建多根工作区,避免拖入文件夹等临时操作,并用系统快捷键(如 cmd+`)切换窗口。

VSCode 没有“项目切换器”,所谓快速切换,本质是让 VSCode 记住你常开的路径,并用最小操作触发加载——不是靠反复点击菜单,而是靠工作区(.code-workspace)文件 + 命令面板 + 系统级窗口管理三者协同。
用 .code-workspace 文件固化常用项目组合
这是最稳定、可复用、可协作的方式。别依赖“添加文件夹到当前工作区”这种临时操作,它不生成配置文件,关掉窗口就丢。
- 必须从空窗口开始:先关闭所有文件夹,确保状态栏不显示任何路径或
[Workspace] - 按
Ctrl+Shift+P(macOS 为Cmd+Shift+P),输入Workspaces: Create Workspace回车 - 在弹出的多选框中,按住
Ctrl或Cmd选中多个项目根目录(如./client、./server) - 保存为
my-app.code-workspace,路径用相对路径(如"path": "../client"),且该文件需放在所有项目共同的父目录下 - 保存后双击打开,或终端执行
code my-app.code-workspace—— 此时左侧资源管理器会并列显示多个根,状态栏出现[Workspace]才算生效
用 Workspaces: Open Recent 零配置跳转最近项目
这个命令列表同时包含最近打开的文件夹和 .code-workspace 文件,但默认不区分显示,容易点错单文件夹而丢失多根上下文。
- 按
Ctrl+Shift+P(macOS 为Cmd+Shift+P),输入Workspaces: Open Recent,回车 - 列表里出现的每个条目都可鼠标悬停预览完整路径,确认是
.code-workspace文件再回车 - 右键某条目 →
Pin to Top可把它钉在最上面,避免被新项目刷掉 - 注意:
Ctrl+R/Cmd+R是快捷入口,但它调用的是同一个命令,行为一致
别把文件夹拖进窗口,否则只是“假多根”
直接把项目文件夹拖进已打开的 VSCode 窗口,看起来都展开了,但只有第一个是真正“根文件夹”,其余只是子目录——它们无法触发各自 .vscode/tasks.json,Ctrl+P 搜索不到,也无法独立启用调试配置。
- 拖入后资源管理器顶部仍只显示单个文件夹名,状态栏没有
[Workspace] - 右键某个“被拖入”的文件夹,如果菜单里没有
Remove Folder from Workspace,说明它根本没被识别为工作区根 - 正确做法是:先清空窗口,再通过
Workspaces: Create Workspace或File > Add Folder to Workspace…(仅限已有工作区)显式声明
窗口 ≠ 工作区,切换焦点要靠操作系统
VSCode 不支持像浏览器那样用 Ctrl+Tab 在不同工作区之间轮转。每个 .code-workspace 默认在独立窗口运行,它们是不同进程。
- 想切到另一个工作区窗口?用系统级快捷键:
Cmd+`(macOS)、Alt+Tab或Ctrl+Alt+Tab(Windows/Linux) -
Ctrl+Tab只在当前窗口内切换编辑器标签页,不是工作区 - 想少开窗口?把逻辑相关的项目(如前后端)塞进同一个
.code-workspace,而不是硬开多个窗口 - 扩展启用状态是全局的,但行为由工作区
settings控制;调试、终端、任务配置也绑定在工作区层级,换窗口就重来
真正容易被忽略的点是:工作区设置(settings 字段)只覆盖你明确写的项,不会继承或清空其他设置;而 launch.json 必须放在 .code-workspace 同级目录,且每个 configuration 得配对 cwd 和 workspaceFolder:name,否则调试器找不到服务路径。











