Glob 模式參考
Visual Studio Code 在許多組件中都會使用 Glob 模式。範例包括在諸如搜尋等功能中設定檔案與資料夾的包含/排除項目、從檔案總管隱藏檔案或將其標記為唯讀,以及設定程式語言特定的檔案關聯。
Glob 模式語法
VS Code 支援下列 Glob 語法
/用於分隔路徑區段*:符合路徑片段中零個或多個字元?:符合路徑片段中一個字元**:符合任意數量的路徑片段,包括沒有{}用於分組條件(例如{**/*.html,**/*.txt}可比對所有 HTML 與文字檔案)[]用於宣告要比對的字元範圍(example.[0-9]可比對example.0、example.1等等)[!...]用於否定要比對的字元範圍(example.[!0-9]可比對example.a、example.b,但不會比對example.0)
注意:即使在 Windows 上,路徑也使用 / 而非 \ 來分隔。但在實際應用時,Glob 模式將會比對包含斜線與反斜線的路徑。
大小寫敏感度
Glob 模式的比對行為會根據平台的檔案系統而有所不同
- Windows 與 macOS:Glob 模式預設為不區分大小寫。例如,模式
**/MyFolder/**將會比對myfolder/、MyFolder/、MYFOLDER/以及任何其他大小寫變化。 - Linux:Glob 模式為區分大小寫。模式
**/MyFolder/**將僅比對完全符合該大小寫的資料夾。
這種基於平台的行為適用於 VS Code 中所有 Glob 模式的使用情境,包括:
- 搜尋檢視的包含/排除模式
- files.exclude 設定
- search.exclude 設定
.gitignore檔案模式(當 explorer.excludeGitIgnore 啟用時)- 搜尋編輯器模式
例如,如果您有一個包含 build/ 模式的 .gitignore 檔案,在 Windows 與 macOS 上這將會比對 build/、Build/、BUILD/ 與其他大小寫變體,但在 Linux 上則僅比對精確相符的項目。這能確保與這些檔案系統處理檔案與資料夾名稱的方式保持一致。
遠端開發:當使用遠端工作區(例如 WSL、SSH 或開發容器)時,Glob 比對行為會遵循遠端檔案系統的大小寫敏感度規則,而非本機客戶端的作業系統規則。
特殊情況
搜尋檢視中的 Glob 模式運作方式與 files.exclude 和 search.exclude 等設定中的運作方式不同。在設定中,您必須使用 **/example 來比對工作區中 folder1/example 子資料夾內名為 example 的資料夾。在搜尋檢視中,則會預設包含 ** 前綴。這些設定中的 Glob 模式始終會相對於工作區資料夾的路徑進行評估。
常見問題
為什麼 Glob 模式不支援 X 或 Y 功能?
我們實作了自己的 Glob 比對程式庫,目標是為大多數典型模式提供最佳效能。如果您希望支援特定的 Glob 語法,您可以提交問題報告並提供您的使用案例。
為什麼我的 Glob 模式無效?
請確保在 Windows 上您使用的是 / 來分隔路徑,而不是 \。VS Code 中的 Glob 模式要求使用 / 來分隔路徑,但它們在路徑中會同時比對 / 和 \。
如果您試圖字面上比對特殊字元(例如 [ 或 ]),請透過將特殊字元放置在方括號內(單字元範圍)來進行跳脫,以避免它在模式比對中被解譯。反斜線無法對其進行跳脫。例如,若要比對 src/routes/post/[id]/ 下的檔案,您應使用模式 src/routes/post/[[]id[]]/**。