Globパターンリファレンス
Visual Studio Codeでは、多くのコンポーネントでglobパターンが使用されています。例えば、検索などの機能でファイルやフォルダーの含める/除外を設定したり、ファイルエクスプローラーからファイルを非表示にしたり、読み取り専用にマークしたり、プログラミング言語固有のファイル関連付けを設定したりする際に使用されます。
Globパターンの構文
VS Codeは以下のglob構文をサポートしています
/
はパスセグメントを区切ります*
- パスセグメント内の0個以上の文字に一致します。?
- パスセグメント内の1文字に一致します。**
- 0個を含む任意の数のパスセグメントに一致します。{}
は条件をグループ化します(例:{**/*.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 などの設定とは異なる動作をします。これらの設定では、ワークスペース内のサブフォルダー folder1/example
にある example
という名前のフォルダーに一致させるには **/example
を使用する必要があります。検索ビューでは、**
プレフィックスが想定されています。これらの設定のglobパターンは、常にワークスペースフォルダーのパスに対して評価されます。
よくある質問
なぜglobパターンは機能XやYをサポートしないのですか?
私たちは、ほとんどの典型的なパターンに対して最適なパフォーマンスを提供することを目標として、独自のglobマッチングライブラリを実装しました。特定のglob構文がサポートされることを期待する場合は、ユースケースとともに問題を報告してください。
なぜ私のglobパターンは機能しないのですか?
Windowsでパスを区切る際に \
ではなく /
を使用していることを確認してください。VS Codeのglobパターンでは、パスを区切るには /
が必要ですが、パス内の /
と \
の両方に一致します。