VSCode多根工作区需通过Save Workspace As…保存为.code-workspace文件来持久化,用!folderName语法做路径限定配置,用${workspaceFolder:name}显式隔离路径,实现多项目统一管理与精准控制。

VSCode 的多根工作区(Multi-root Workspaces)不是简单地“打开多个文件夹”,而是把多个独立项目组织成一个逻辑整体,共享设置、调试配置和扩展行为。用对了,能大幅减少上下文切换;用错了,反而让配置混乱、断点失效、终端路径错乱。
正确创建和保存多根工作区
不要直接拖拽多个文件夹到 VSCode 窗口——那样只是临时并列打开,不构成真正的多根工作区。正确做法是:
- 先关闭所有文件夹,只保留一个空的 VSCode 窗口
- 执行命令 File > Add Folder to Workspace…,逐个添加项目根目录
- 添加完毕后,务必点击 File > Save Workspace As…,保存为
.code-workspace文件(例如my-projects.code-workspace) - 以后双击这个文件,就能一次性加载全部项目,且保留上次的布局、已开文件、折叠状态
按项目定制配置,避免互相干扰
根工作区的 .code-workspace 文件支持 folders 和 settings 两大部分。关键技巧在于:设置项可以写在 settings 下,但要配合 !folderName 语法做路径限定。
比如你的工作区包含 frontend/ 和 backend/ 两个文件夹,想让 ESLint 只在前端生效:
"settings": {
"[javascript]": {
"editor.formatOnSave": true
},
"eslint.enable": true,
"eslint.workingDirectories": ["./frontend"],
"!frontend": {
"eslint.enable": true
},
"!backend": {
"eslint.enable": false
}
}
注意:! 开头的键表示“仅作用于该文件夹内”,优先级高于全局设置。
调试多个服务时共享 launch 配置
多项目常对应前后端联调。不必为每个项目单独建 .vscode/launch.json,推荐统一放在工作区根级(即 .code-workspace 同级)的 .vscode/launch.json 中,用 cwd 明确指定每个配置的工作目录。
- 前端启动配置里加
"cwd": "${workspaceFolder:frontend}" - 后端启动配置里加
"cwd": "${workspaceFolder:backend}" - 使用
${workspaceFolder:name}语法可精准定位某一个文件夹,名称取自.code-workspace中folders数组的name字段(未指定则默认为文件夹名)
终端自动切换到对应项目根目录
默认新建终端会进入第一个文件夹路径。想让它智能匹配当前编辑器所在项目?启用 VSCode 内置设置:
"terminal.integrated.defaultLocation": "workspace"
再配合这个小技巧:在资源管理器中右键某个项目文件夹 → Open in Integrated Terminal,终端就会自动 cd 进去。长期使用可绑定快捷键(如 Ctrl+Shift+T)提升效率。
基本上就这些。多根工作区不是“高级功能”,而是中大型协作项目的日常必需。核心就三点:用 .code-workspace 文件持久化、用 ! 语法做细粒度配置、用 ${workspaceFolder:name} 显式隔离路径。不复杂但容易忽略。










