最稳方式是用.code-workspace文件固化两个项目并配合workspaces: open recent或project manager插件调用;需先清空窗口,通过命令面板创建多根工作区,保存为相对路径的.code-workspace文件,双击打开后状态栏显示[workspace]才算生效。

直接切换两个项目,最稳的方式不是靠记忆路径或反复拖拽,而是用 .code-workspace 文件固化它们,再配合 Workspaces: Open Recent 或 Project Manager 插件调用——否则你大概率会点错、拖错、丢终端、丢调试状态。
用 .code-workspace 文件把两个项目“绑死”在一起
这不是临时加文件夹,而是生成一个可复用、可共享、带路径快照的配置文件。关掉再打开,两个项目还在原位,各自 .vscode/tasks.json 和 launch.json 都能触发。
- 先清空当前窗口:关闭所有文件夹,确保状态栏不显示路径或
[Workspace] - 按
Ctrl+Shift+P(macOS 为Cmd+Shift+P),输入Workspaces: Create Workspace回车 - 在弹出的多选框中,同时选中两个项目根目录(比如
./frontend和./backend) - 保存为
my-app.code-workspace,路径必须用相对路径(如"path": "../frontend"),别写死/Users/xxx/... - 双击该文件,或终端执行
code my-app.code-workspace—— 成功后左侧资源管理器并列显示两个根,状态栏出现[Workspace]
常见错误:拖文件夹进已打开窗口 → 只有第一个是真根,右键没 Remove Folder from Workspace 就说明它根本没被识别;状态栏没 [Workspace] 就等于没生效。
不用插件时,靠 Workspaces: Open Recent 零配置跳转
适合你只是偶尔在两个完全无关的项目间跳(比如 React 项目和 Python 脚本),不想建工作区。它不依赖任何配置,但容易点错单文件夹而丢掉多根上下文。
- 按
Ctrl+Shift+P(macOS 为Cmd+Shift+P),输入Workspaces: Open Recent回车 - 列表里混着文件夹和
.code-workspace文件,鼠标悬停看完整路径,确认是你要的那个再回车 - 右键某条目 →
Pin to Top,把它钉在最上面,避免被新项目刷掉 - 支持模糊搜索:输入
fe或api就能过滤出匹配项
注意:Ctrl+R/Cmd+R 是快捷入口,但它调用的仍是同一个命令,行为一致;别指望它自动区分“项目A”和“项目A的workspace”,得靠你肉眼确认路径。
项目数 ≥3 或需要分类时,Project Manager 插件才真正省事
原生功能到两个项目还能凑合,三个以上就容易翻页、找错、重名。这个插件不是“锦上添花”,而是解决命名冲突、路径失效、Git 仓库批量注册的实际问题。
- 安装后必须手动执行
Project Manager: Save Project,插件不会自动扫描硬盘 - 起名要唯一且带语义:
client-x-admin-fe比admin更安全,避免后期搜索冲突 - 默认在新窗口打开项目;想在当前窗口替换,按
Enter后选Open Project,或按住Ctrl(Win/Linux)/Cmd(macOS)点击 - 路径写错、JSON 格式损坏(比如末尾多逗号)会导致整个列表为空,运行
Project: Refresh Projects强制重载
关键限制:插件只切换工作区路径,不接管扩展启用状态、终端环境变量、调试会话——切换后如果发现终端还是上个项目里的进程,那是正常现象,得手动重启。
别踩这些坑:快捷键、焦点、路径全乱套的根源
很多“切不动”不是功能问题,而是快捷键被系统输入法劫持,或者焦点卡在终端里没释放,又或者路径用了绝对路径导致换机器就失效。
-
Ctrl+Tab只在当前编辑器组内切标签页,跨项目切换得用Alt+Tab(Win)/Cmd+Tab(macOS)切窗口,不是 VS Code 内部逻辑 - 开了终端面板后按
Ctrl+1切编辑器组,焦点可能卡在终端里不动——先按Ctrl+`关终端,再切组 -
.code-workspace里写绝对路径(/home/user/project)→ 同事拉代码后路径失效;写相对路径(./project)→ 必须放在所有项目的共同父目录下 - 多根工作区下,所有项目共用一份
settings.json,没法给 frontend 单独设tabSize: 2、backend 设tabSize: 4,差异化配置得靠扩展或拆成多个工作区
最常被忽略的一点:VSCode 没有“项目切换器”,所谓快速切换,本质是让路径可复用、可检索、可一键触发——不是靠操作多,而是靠提前固化好上下文。











