VSCode多根工作區(qū)功能實現(xiàn)
VS Code 的多根工作區(qū)(Multi-root Workspace)功能允許在一個 VS Code 窗口內(nèi)同時處理多個不同位置的文件夾,這對于需要同時操作多個關(guān)聯(lián)項目但又想避免頻繁切換窗口的開發(fā)者來說非常實用。
???1. 什么是多根工作區(qū)?
多根工作區(qū)(Multi-root Workspace)是 VS Code 提供的一種高級功能,它允許在單個編輯器窗口內(nèi)同時打開和管理多個不同的文件夾。這些文件夾可以來自磁盤上的任意位置,甚至可以是完全獨立的項目。
傳統(tǒng)單文件夾模式:VS Code 默認(rèn)基于文件夾進(jìn)行管理。當(dāng)你打開一個文件夾時,編輯器會分析該文件夾內(nèi)容(如檢測 .git 目錄或 tsconfig.json 文件)并加載相應(yīng)功能。
多根工作區(qū)模式:通過創(chuàng)建 .code-workspace 文件來定義工作區(qū)配置,此 JSON 格式文件記錄了工作區(qū)中包含的文件夾路徑、工作區(qū)特定設(shè)置、調(diào)試配置等。
示例如下:

2. 如何創(chuàng)建和使用多根工作區(qū)
2.1 創(chuàng)建多根工作區(qū)
- 打開初始文件夾:首先在 VS Code 中打開一個文件夾(此時狀態(tài)欄為藍(lán)色,未打開任何文件夾時為紫色)。
- 添加更多文件夾:
- 使用命令面板(Ctrl+Shift+P / Cmd+Shift+P),搜索并執(zhí)行
將文件夾添加到工作區(qū)(Add Folder to Workspace)。
- 使用命令面板(Ctrl+Shift+P / Cmd+Shift+P),搜索并執(zhí)行

- 或者通過菜單欄:`文件` -> `將文件夾添加到工作區(qū)`。

- 也可以直接將要添加的文件夾拖拽到 VS Code 左側(cè)的資源管理器窗格中。
- 保存工作區(qū):添加文件夾后,資源管理器標(biāo)題欄會顯示“無標(biāo)題(工作區(qū))”。通過命令面板搜索
將工作區(qū)另存為(Save Workspace As),將其保存為一個后綴名為.code-workspace的文件(例如sample.code-workspace)。這個文件存儲了工作區(qū)的配置。
2.2 打開和關(guān)閉工作區(qū)
- 打開現(xiàn)有工作區(qū):使用
文件->打開工作區(qū)來自文件...(Open Workspace from File),或者直接雙擊.code-workspace文件。 - 關(guān)閉工作區(qū)或文件夾:若要移除工作區(qū)中的某個文件夾,可在資源管理器中右鍵點擊該文件夾,選擇
將文件夾從工作區(qū)中移除。要關(guān)閉整個工作區(qū),只需關(guān)閉 VS Code 窗口或打開另一個文件夾/工作區(qū)。系統(tǒng)可能會提示你是否保存未命名的(untitled)工作區(qū)。

3. 多根工作區(qū)的核心結(jié)構(gòu)和配置
.code-workspace 文件是一個 JSON 文件,其基本結(jié)構(gòu)如下:
{
"folders": [
{
"path": "C:\\Users\\Administrator\\Desktop\\vscodefolder"
},
{
"path": "relative/path/to/folder" // 也可以是相對于工作區(qū)文件的相對路徑
},
{
"path": "another-folder",
"name": "Custom Display Name" // 可選,為文件夾定義自定義顯示名稱
}
],
"settings": {
// 工作區(qū)級別的設(shè)置,會覆蓋用戶設(shè)置和文件夾設(shè)置
"editor.tabSize": 4,
"files.exclude": {
"**/node_modules": true
}
},
"extensions": {
// 可選,指定在此工作區(qū)中推薦或禁用的擴(kuò)展
"recommendations": [
"ms-vscode.vscode-typescript-next"
],
"unwantedRecommendations": [
"ms-vscode.vscode-extension"
]
},
"launch": {
// 可選,工作區(qū)級別的調(diào)試配置
"version": "0.2.0",
"configurations": [
{
"type": "node",
"request": "launch",
"name": "Launch Program",
"program": "${workspaceFolder}/app.js"
}
]
}
}
下面是多根工作區(qū)中設(shè)置優(yōu)先級的簡要說明:

4. 多根工作區(qū)的優(yōu)勢和適用場景
4.1 主要優(yōu)勢
- 無縫上下文切換:無需在多個 VS Code 窗口間切換,即可同時訪問和編輯不同項目的文件,并通過資源管理器輕松導(dǎo)航。
- 統(tǒng)一配置與管理:可以在工作區(qū)級別定義統(tǒng)一的設(shè)置(如代碼風(fēng)格、格式化規(guī)則)、調(diào)試配置 (
launch) 和任務(wù)配置 (tasks),這些配置會應(yīng)用于工作區(qū)中的所有文件夾,方便保持一致性。同時也支持為每個文件夾單獨配置(存儲在各自文件夾的.vscode目錄下),提供了靈活性。 - 高效的代碼導(dǎo)航與搜索:可以在整個工作區(qū)的所有文件夾中進(jìn)行全局搜索和替換,或者使用“跳轉(zhuǎn)到定義”、“查找所有引用”等功能跨越文件夾邊界。
- 共享的擴(kuò)展環(huán)境:通過
extensions字段可以為工作區(qū)推薦或禁用特定擴(kuò)展,方便團(tuán)隊新成員快速獲得一致的開發(fā)環(huán)境。 - 團(tuán)隊協(xié)作與版本控制:
.code-workspace文件可以納入版本控制系統(tǒng)(如 Git),團(tuán)隊成員共享同一工作區(qū)配置,保證環(huán)境一致性。
4.2 典型適用場景
- 前后端分離項目:前端(如 React/Vue 項目)和后端(如 Node.js/Spring Boot 項目)代碼存放在不同目錄,但開發(fā)時需要同時修改和調(diào)試。
- Monorepo 項目管理:單個代碼倉庫中包含多個相互關(guān)聯(lián)的包或模塊(例如使用 Lerna、Yarn Workspaces 或 Turborepo 管理的項目),每個子項目是一個子文件夾。
- 微服務(wù)架構(gòu)開發(fā):同時處理多個獨立的微服務(wù)項目,需要頻繁在服務(wù)間切換和聯(lián)調(diào)。
- 文檔與代碼并存的項目:產(chǎn)品源代碼與對應(yīng)的文檔(如說明文件、API文檔)存放在不同位置。
- 引用共享庫或工具包:主項目依賴于另一個本地開發(fā)中的公共庫或工具包,需要同時編輯和測試。
5. 使用技巧與注意事項
- 工作區(qū)切換:
- 使用
Ctrl+R(Windows/Linux)或Cmd+R(Mac)打開最近文件或文件夾的列表,也可用于切換工作區(qū)。 - 通過命令面板搜索
切換窗口(Switch Window)或快速切換窗口(Quick Switch Window)在不同窗口(可能對應(yīng)不同工作區(qū))間切換。
- 使用
- 無標(biāo)題工作區(qū):未保存的“無標(biāo)題”工作區(qū)在 VS Code 重啟后會被自動恢復(fù),除非你明確選擇不保存。若要刪除無標(biāo)題工作區(qū),請在關(guān)閉窗口時選擇“不保存”。
- 空工作區(qū):甚至可以創(chuàng)建一個不包含任何文件夾的
.code-workspace文件,僅用于存儲特定的設(shè)置、任務(wù)或調(diào)試配置。 - 路徑問題:在
.code-workspace文件中,建議盡可能使用相對路徑來定義文件夾位置,這樣可以提高文件在不同機(jī)器上的可移植性。 - 性能考量:雖然多根工作區(qū)很方便,但如果添加的文件夾非常大(如包含成千上萬個文件),可能會對 VS Code 的性能(如索引、搜索速度)產(chǎn)生一定影響。請根據(jù)實際需要添加文件夾。
- Git 集成:如果工作區(qū)中的多個文件夾都是 Git 倉庫,VS Code 的源代碼管理視圖會分別顯示每個倉庫的更改,你可以獨立進(jìn)行提交等操作。
6. 多根工作區(qū) vs. 其他方案
| 特性/方案 | 多根工作區(qū) (Multi-root Workspace) | 單文件夾模式 (Single Folder) | 多個獨立 VS Code 窗口 | 符號鏈接 (Symbolic Links) |
|---|---|---|---|---|
| 管理多個項目 | ? 原生支持,一個窗口管理多個文件夾 | ? 一次只能打開一個文件夾 | ? 每個窗口一個文件夾,但需頻繁切換 | ?? 通過符號鏈接“模擬”單文件夾,配置稍復(fù)雜 |
| 統(tǒng)一設(shè)置與調(diào)試 | ? 高度可配置,支持工作區(qū)級和文件夾級設(shè)置 | ? 僅支持當(dāng)前文件夾的設(shè)置 | ? 設(shè)置相互獨立 | ? 設(shè)置應(yīng)用于“單”文件夾 |
| 跨項目搜索操作 | ? 支持,可在所有文件夾中搜索 | ? 僅限于當(dāng)前文件夾 | ? 無法跨窗口搜索 | ? 可搜索,但路徑是鏈接后的 |
| 資源管理器視圖 | ? 清晰并列顯示所有文件夾 | ? 只顯示一個文件夾 | ? 分散在不同窗口 | ? 顯示為單文件夾下的子目錄 |
| 團(tuán)隊共享配置 | ? 方便,.code-workspace 文件可加入版本控制 | ? .vscode/ 文件夾可加入版本控制 | ? 無法共享窗口配置 | ?? 需共享符號鏈接方式,可能不便 |
| 推薦場景 | 密切關(guān)聯(lián)的項目組(如 monorepo, 微服務(wù), 前后端分離項目) | 獨立項目 | 完全無關(guān)且需隔離上下文的項目 | 需要將分散項目“偽裝”成單項目時 |
7. 總結(jié)
VS Code 的多根工作區(qū)是一個強(qiáng)大而靈活的功能,它巧妙地解決了開發(fā)者同時處理多個關(guān)聯(lián)項目時的痛點。通過創(chuàng)建一個集中管理的 .code-workspace 配置文件,可以做到不僅可以輕松組織來自不同位置的文件夾,還能實現(xiàn)統(tǒng)一的開發(fā)環(huán)境設(shè)置、高效的跨項目操作以及便捷的團(tuán)隊協(xié)作。
到此這篇關(guān)于VSCode多根工作區(qū)功能詳解的文章就介紹到這了,更多相關(guān)VSCode多根工作區(qū)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
C++編程異常處理中try和throw以及catch語句的用法
這篇文章主要介紹了C++編程異常處理中try和throw以及catch語句的用法,包括對Catch塊的計算方式的介紹,需要的朋友可以參考下2016-01-01
從零學(xué)習(xí)構(gòu)造系統(tǒng)之bazel示例詳解
這篇文章主要為大家介紹了從零學(xué)習(xí)構(gòu)造系統(tǒng)之bazel示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-02-02
C++從文本文件讀取數(shù)據(jù)到vector中的方法
這篇文章主要給大家介紹了利用C++如何從文本文件讀取數(shù)據(jù)到vector中,文章通過實例給出示例代碼,相信會對大家的理解和學(xué)習(xí)很有幫助,有需要的朋友們下面來一起看看吧。2016-10-10
一文帶你學(xué)習(xí)C/C++中的<Windows.h>庫
c語言 #include<windows.h>是寫window程序需要的重要頭文件,下面這篇文章主要給大家介紹了C/C++中<Windows.h>庫的相關(guān)資料,文中通過實例代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-01-01
C++類靜態(tài)成員與類靜態(tài)成員函數(shù)詳解
靜態(tài)成員不可在類體內(nèi)進(jìn)行賦值,因為它是被所有該類的對象所共享的。你在一個對象里給它賦值,其他對象里的該成員也會發(fā)生變化。為了避免混亂,所以不可在類體內(nèi)進(jìn)行賦值2013-09-09

