vs code 的多根工作区(multi-root workspace)功能允许在一个 vs code 窗口内同时处理多个不同位置的文件夹,这对于需要同时操作多个关联项目但又想避免频繁切换窗口的开发者来说非常实用。
🖥️1. 什么是多根工作区?
多根工作区(multi-root workspace)是 vs code 提供的一种高级功能,它允许在单个编辑器窗口内同时打开和管理多个不同的文件夹。这些文件夹可以来自磁盘上的任意位置,甚至可以是完全独立的项目。
传统单文件夹模式:vs code 默认基于文件夹进行管理。当你打开一个文件夹时,编辑器会分析该文件夹内容(如检测 .git 目录或 tsconfig.json 文件)并加载相应功能。
多根工作区模式:通过创建 .code-workspace 文件来定义工作区配置,此 json 格式文件记录了工作区中包含的文件夹路径、工作区特定设置、调试配置等。
示例如下:

2. 如何创建和使用多根工作区
2.1 创建多根工作区
- 打开初始文件夹:首先在 vs code 中打开一个文件夹(此时状态栏为蓝色,未打开任何文件夹时为紫色)。
- 添加更多文件夹:
- 使用命令面板(ctrl+shift+p / cmd+shift+p),搜索并执行
将文件夹添加到工作区(add folder to workspace)。
- 使用命令面板(ctrl+shift+p / cmd+shift+p),搜索并执行

- 或者通过菜单栏:`文件` -> `将文件夹添加到工作区`。

- 也可以直接将要添加的文件夹拖拽到 vs code 左侧的资源管理器窗格中。
- 保存工作区:添加文件夹后,资源管理器标题栏会显示“无标题(工作区)”。通过命令面板搜索
将工作区另存为(save workspace as),将其保存为一个后缀名为.code-workspace的文件(例如sample.code-workspace)。这个文件存储了工作区的配置。
2.2 打开和关闭工作区
- 打开现有工作区:使用
文件->打开工作区来自文件...(open workspace from file),或者直接双击.code-workspace文件。 - 关闭工作区或文件夹:若要移除工作区中的某个文件夹,可在资源管理器中右键点击该文件夹,选择
将文件夹从工作区中移除。要关闭整个工作区,只需关闭 vs code 窗口或打开另一个文件夹/工作区。系统可能会提示你是否保存未命名的(untitled)工作区。

3. 多根工作区的核心结构和配置
.code-workspace 文件是一个 json 文件,其基本结构如下:
{
"folders": [
{
"path": "c:\\users\\administrator\\desktop\\vscodefolder"
},
{
"path": "relative/path/to/folder" // 也可以是相对于工作区文件的相对路径
},
{
"path": "another-folder",
"name": "custom display name" // 可选,为文件夹定义自定义显示名称
}
],
"settings": {
// 工作区级别的设置,会覆盖用户设置和文件夹设置
"editor.tabsize": 4,
"files.exclude": {
"**/node_modules": true
}
},
"extensions": {
// 可选,指定在此工作区中推荐或禁用的扩展
"recommendations": [
"ms-vscode.vscode-typescript-next"
],
"unwantedrecommendations": [
"ms-vscode.vscode-extension"
]
},
"launch": {
// 可选,工作区级别的调试配置
"version": "0.2.0",
"configurations": [
{
"type": "node",
"request": "launch",
"name": "launch program",
"program": "${workspacefolder}/app.js"
}
]
}
}
下面是多根工作区中设置优先级的简要说明:

4. 多根工作区的优势和适用场景
4.1 主要优势
- 无缝上下文切换:无需在多个 vs code 窗口间切换,即可同时访问和编辑不同项目的文件,并通过资源管理器轻松导航。
- 统一配置与管理:可以在工作区级别定义统一的设置(如代码风格、格式化规则)、调试配置 (
launch) 和任务配置 (tasks),这些配置会应用于工作区中的所有文件夹,方便保持一致性。同时也支持为每个文件夹单独配置(存储在各自文件夹的.vscode目录下),提供了灵活性。 - 高效的代码导航与搜索:可以在整个工作区的所有文件夹中进行全局搜索和替换,或者使用“跳转到定义”、“查找所有引用”等功能跨越文件夹边界。
- 共享的扩展环境:通过
extensions字段可以为工作区推荐或禁用特定扩展,方便团队新成员快速获得一致的开发环境。 - 团队协作与版本控制:
.code-workspace文件可以纳入版本控制系统(如 git),团队成员共享同一工作区配置,保证环境一致性。
4.2 典型适用场景
- 前后端分离项目:前端(如 react/vue 项目)和后端(如 node.js/spring boot 项目)代码存放在不同目录,但开发时需要同时修改和调试。
- monorepo 项目管理:单个代码仓库中包含多个相互关联的包或模块(例如使用 lerna、yarn workspaces 或 turborepo 管理的项目),每个子项目是一个子文件夹。
- 微服务架构开发:同时处理多个独立的微服务项目,需要频繁在服务间切换和联调。
- 文档与代码并存的项目:产品源代码与对应的文档(如说明文件、api文档)存放在不同位置。
- 引用共享库或工具包:主项目依赖于另一个本地开发中的公共库或工具包,需要同时编辑和测试。
5. 使用技巧与注意事项
- 工作区切换:
- 使用
ctrl+r(windows/linux)或cmd+r(mac)打开最近文件或文件夹的列表,也可用于切换工作区。 - 通过命令面板搜索
切换窗口(switch window)或快速切换窗口(quick switch window)在不同窗口(可能对应不同工作区)间切换。
- 使用
- 无标题工作区:未保存的“无标题”工作区在 vs code 重启后会被自动恢复,除非你明确选择不保存。若要删除无标题工作区,请在关闭窗口时选择“不保存”。
- 空工作区:甚至可以创建一个不包含任何文件夹的
.code-workspace文件,仅用于存储特定的设置、任务或调试配置。 - 路径问题:在
.code-workspace文件中,建议尽可能使用相对路径来定义文件夹位置,这样可以提高文件在不同机器上的可移植性。 - 性能考量:虽然多根工作区很方便,但如果添加的文件夹非常大(如包含成千上万个文件),可能会对 vs code 的性能(如索引、搜索速度)产生一定影响。请根据实际需要添加文件夹。
- git 集成:如果工作区中的多个文件夹都是 git 仓库,vs code 的源代码管理视图会分别显示每个仓库的更改,你可以独立进行提交等操作。
6. 多根工作区 vs. 其他方案
| 特性/方案 | 多根工作区 (multi-root workspace) | 单文件夹模式 (single folder) | 多个独立 vs code 窗口 | 符号链接 (symbolic links) |
|---|---|---|---|---|
| 管理多个项目 | ✅ 原生支持,一个窗口管理多个文件夹 | ❌ 一次只能打开一个文件夹 | ✅ 每个窗口一个文件夹,但需频繁切换 | ⚠️ 通过符号链接“模拟”单文件夹,配置稍复杂 |
| 统一设置与调试 | ✅ 高度可配置,支持工作区级和文件夹级设置 | ✅ 仅支持当前文件夹的设置 | ❌ 设置相互独立 | ✅ 设置应用于“单”文件夹 |
| 跨项目搜索操作 | ✅ 支持,可在所有文件夹中搜索 | ❌ 仅限于当前文件夹 | ❌ 无法跨窗口搜索 | ✅ 可搜索,但路径是链接后的 |
| 资源管理器视图 | ✅ 清晰并列显示所有文件夹 | ✅ 只显示一个文件夹 | ❌ 分散在不同窗口 | ✅ 显示为单文件夹下的子目录 |
| 团队共享配置 | ✅ 方便,.code-workspace 文件可加入版本控制 | ✅ .vscode/ 文件夹可加入版本控制 | ❌ 无法共享窗口配置 | ⚠️ 需共享符号链接方式,可能不便 |
| 推荐场景 | 密切关联的项目组(如 monorepo, 微服务, 前后端分离项目) | 独立项目 | 完全无关且需隔离上下文的项目 | 需要将分散项目“伪装”成单项目时 |
7. 总结
vs code 的多根工作区是一个强大而灵活的功能,它巧妙地解决了开发者同时处理多个关联项目时的痛点。通过创建一个集中管理的 .code-workspace 配置文件,可以做到不仅可以轻松组织来自不同位置的文件夹,还能实现统一的开发环境设置、高效的跨项目操作以及便捷的团队协作。
到此这篇关于vscode多根工作区功能详解的文章就介绍到这了,更多相关vscode多根工作区内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!
发表评论