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表达式的工作方式与文件设置(如 files.exclude 和 search.exclude)中的工作方式有所不同。在设置中,必须使用 **/example 来匹配工作区中 folder1/example 子文件夹下的名为 example 的文件夹。在“搜索”视图中,默认假设已使用 ** 前缀。这些设置中的glob表达式始终相对于工作区文件夹的路径进行评估。
常见问题
为什么glob表达式不支持功能X或Y?
我们实现了自己的glob匹配库,目的是为了在大多数典型表达式下提供最佳性能。如果你期望某种glob语法得到支持,你可以根据你的使用场景报告问题。
为什么我的glob表达式不起作用?
确保在Windows系统上,你使用的是 / 来分隔路径,而不是 \。VS Code中的glob表达式要求使用 / 作为路径分隔符,但它们会在路径中匹配斜杠(/)和反斜杠(\)。