VSCode Glob 表达式参考

298 阅读2分钟

Visual Studio Code在多个组件中使用glob表达式。例如,在搜索功能中设置文件和文件夹的包含/排除,隐藏文件或将其标记为只读,以及设置编程语言特定的文件关联。

Glob表达式语法
VS Code支持以下glob语法:

  • /:用于分隔路径段
  • *:匹配路径段中的零个或多个字符
  • ?:匹配路径段中的一个字符
  • **:匹配任意数量的路径段(包括零个)
  • {}:用于分组条件(例如 {**/*.html,**/*.txt} 匹配所有HTML和文本文件)
  • []:声明字符范围进行匹配(例如 example.[0-9] 匹配 example.0example.1 等)
  • [!...]:用于否定字符范围进行匹配(例如 example.[!0-9] 匹配 example.aexample.b,但不匹配 example.0

注意: 路径使用 / 作为分隔符,而不是 \,即使在Windows系统上。但在实际应用时,glob表达式会匹配使用斜杠(/)和反斜杠(\)的路径。


特殊情况

在“搜索”视图中,glob表达式的工作方式与文件设置(如 files.excludesearch.exclude)中的工作方式有所不同。在设置中,必须使用 **/example 来匹配工作区中 folder1/example 子文件夹下的名为 example 的文件夹。在“搜索”视图中,默认假设已使用 ** 前缀。这些设置中的glob表达式始终相对于工作区文件夹的路径进行评估。


常见问题

为什么glob表达式不支持功能X或Y?
我们实现了自己的glob匹配库,目的是为了在大多数典型表达式下提供最佳性能。如果你期望某种glob语法得到支持,你可以根据你的使用场景报告问题。

为什么我的glob表达式不起作用?
确保在Windows系统上,你使用的是 / 来分隔路径,而不是 \。VS Code中的glob表达式要求使用 / 作为路径分隔符,但它们会在路径中匹配斜杠(/)和反斜杠(\)。

翻译自:vscode glob 表达式官方文档