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 パターンではパスを区切るために / が必要ですが、パス内の / と \ の両方に一致します。
[ や ] のような特殊文字を文字通りに一致させようとしている場合は、パターンマッチングで解釈されるのを避けるために、特殊文字を角括弧 (単一文字の範囲) の中に入れてエスケープしてください。バックスラッシュではエスケープされません。たとえば、src/routes/post/[id]/ の下のファイルに一致させるには、src/routes/post/[[]id[]]/** というパターンを使用します。