Glob パターンのリファレンス
Visual Studio Code は、多くのコンポーネントで glob パターンを使用します。例としては、検索などの機能でのファイルとフォルダーのインクルード/エクスクルードの設定、ファイルエクスプローラーからファイルを非表示にする、またはそれらを読み取り専用としてマークする、プログラミング言語固有のファイル関連付けの設定などが挙げられます。
Glob パターンの構文
VS Code は以下の glob 構文をサポートしています
/: パスセグメントを区切る*- パスセグメント内のゼロ個以上の文字に一致する?- パスセグメント内の1文字に一致する**- ゼロ個以上のパスセグメントに一致する{}: 条件をグループ化する (例:{**/*.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[]]/** を使用します。