VSCodeで検索対象からファイルを除外する方法

採用はこちら

VSCode(Visual Studio Code)でプロジェクト全体を検索すると、node_modulesやビルドファイル、ログファイルなど、確認する必要のないファイルまで検索結果に含まれることがあります。

そのような場合は、検索画面の「除外するファイル」やsearch.excludeを利用すると、不要なファイルやフォルダを検索対象から外せます。

一時的に除外したい場合と、常に除外したい場合では適した方法が異なるため、それぞれ使い分けることが重要です。

目次

検索画面から一時的にファイルを除外する方法

検索画面を開く

まず、VSCodeの検索画面を開きます。

WindowsやLinuxでは、次のショートカットキーを使用できます。

Ctrl + Shift + F

macOSでは、次のショートカットキーです。

Command + Shift + F

検索画面を開くと、ワークスペース全体を対象に文字列を検索できます。

「除外するファイル」に対象を入力する

検索画面には、検索対象を指定するための「含めるファイル」と「除外するファイル」という項目があります。

「除外するファイル」にファイル名やフォルダ名を入力すると、その対象を検索結果から外せます。

例えば、distフォルダを除外したい場合は、次のように入力できます。

dist

複数のフォルダを除外する場合は、カンマで区切って指定できます。

node_modules, dist, build

検索画面では、単純なフォルダ名を指定するだけでもワークスペース内の該当フォルダを対象外にできます。

一時的な検索条件として使いたい場合に適した方法です。

search.excludeで常に検索対象から除外する方法

毎回同じファイルやフォルダを除外する場合は、search.excludeを設定する方法が便利です。

設定画面からsearch.excludeを変更する

VSCodeの設定画面を開きます。

WindowsやLinuxでは、次のショートカットキーです。

Ctrl + ,

macOSでは、次のキーを使用します。

Command + ,

設定画面の検索欄に、次の文字列を入力します。

search.exclude

「Search: Exclude」という設定項目が表示されるため、ここから検索対象から外したいパターンを追加できます。

settings.jsonから設定する

より細かく設定したい場合は、settings.jsonを直接編集できます。

例えば、node_modules、dist、buildを検索対象から除外する場合は、次のように記述します。

{
    "search.exclude": {
        "**/node_modules/**": true,
        "**/dist/**": true,
        "**/build/**": true
    }
}

この設定を行うと、該当するフォルダが通常の検索結果に表示されにくくなります。

参考サイト

VS Code で特定ディレクトリを検索対象から除外する – 理系学生日記

特定の拡張子を検索対象から除外する方法

特定の種類のファイルを除外する

特定の拡張子を持つファイルをまとめて検索対象から外すこともできます。

例えば、すべてのJavaScriptファイルを除外したい場合は、次のように設定します。

{
    "search.exclude": {
        "**/*.js": true
    }
}

これにより、プロジェクト内の.jsファイルを検索対象から除外できます。

複数の拡張子を除外する

複数の拡張子を除外したい場合は、それぞれ個別に設定できます。

{
    "search.exclude": {
        "**/*.js": true,
        "**/*.map": true,
        "**/*.log": true
    }
}

globパターンの{}を利用して、まとめて指定することもできます。

**/*.{js,map,log}

このように設定すると、.js、.map、.logをまとめて指定できます。

特定のファイルだけを検索対象から除外する方法

特定のファイル名だけを検索対象から外すことも可能です。

例えば、package-lock.jsonを除外したい場合は、次のように設定します。

{
    "search.exclude": {
        "**/package-lock.json": true
    }
}

複数のファイルを除外する場合は、次のように記述できます。

{
    "search.exclude": {
        "**/package-lock.json": true,
        "**/yarn.lock": true,
        "**/composer.lock": true
    }
}

自動生成されるロックファイルなどが大量に検索結果へ表示される場合に便利です。

特定のフォルダを検索対象から除外する方法

node_modulesを除外する

Node.jsのプロジェクトでは、node_modulesに大量のファイルが含まれています。

検索対象から除外したい場合は、次のように設定できます。

{
    "search.exclude": {
        "**/node_modules/**": true
    }
}

なお、VSCodeではnode_modulesなど一部の一般的なフォルダが、通常は検索対象から除外されるよう設定されています。

ただし、ユーザー設定やワークスペース設定によって挙動が変わる場合があります。

ビルド結果を除外する

Web開発では、dist、build、out、coverageなどのフォルダが自動生成されることがあります。

これらを検索対象から外したい場合は、次のように設定できます。

{
    "search.exclude": {
        "**/dist/**": true,
        "**/build/**": true,
        "**/out/**": true,
        "**/coverage/**": true
    }
}

生成済みファイルを除外すると、ソースコードだけを検索しやすくなります。

globパターンを使って検索対象を細かく指定する

search.excludeでは、globパターンを利用して対象を柔軟に指定できます。

*は同じ階層内の文字列に一致する

*は、同じパス階層内にある0文字以上の文字列に一致します。

例えば、次のような指定があります。

*.log

すべての階層にある.logファイルを対象にしたい場合は、次のように記述できます。

**/*.log

**は複数の階層に一致する

**は、0個以上のパス階層に一致します。

例えば、次のように指定できます。

**/cache/**

この場合、プロジェクト内のどの階層にあるcacheフォルダでも対象にできます。

?は1文字に一致する

?は、任意の1文字に一致します。

例えば、次のパターンがあります。

file?.txt

この場合、次のようなファイル名に一致します。

file1.txt
fileA.txt
fileX.txt

{}で複数の条件をまとめる

{}を利用すると、複数の条件を1つのパターンにまとめられます。

例えば、次のように記述できます。

**/*.{log,tmp,bak}

これにより、.log、.tmp、.bakのファイルをまとめて指定できます。

.gitignoreを検索対象の除外に利用する

VSCodeの検索では、.gitignoreなどのignoreファイルに記載された対象を検索結果から除外できます。

例えば、.gitignoreに次のような設定があるとします。

node_modules/
dist/
.env

検索画面にある「Use Exclude Settings and Ignore Files」に相当する設定が有効になっていれば、これらのファイルやフォルダは通常の検索からも除外されます。

VSCodeでGitの管理対象外にしているファイルと、検索する必要のないファイルがほぼ同じ場合は、.gitignoreを活用すると管理しやすくなります。

search.excludeとfiles.excludeの違い

VSCodeには、検索対象を制御するsearch.excludeのほかに、files.excludeという設定もあります。

両者は目的が異なるため、使い分けることが重要です。

search.excludeとは

search.excludeは、主に検索結果から特定のファイルやフォルダを除外するための設定です。

例えば、次のように設定します。

{
    "search.exclude": {
        "**/*.log": true
    }
}

この場合、.logファイルをExplorerには表示したまま、通常の検索対象から除外できます。

files.excludeとは

files.excludeは、主にVSCodeのExplorer上からファイルやフォルダを非表示にするための設定です。

例えば、次のように設定します。

{
    "files.exclude": {
        "**/.git": true,
        "**/.DS_Store": true
    }
}

ただし、files.excludeは単にExplorer上で非表示にするだけではなく、検索やワークスペース内のファイル処理に影響する場合があります。

そのため、Explorerには表示したまま検索結果だけから除外したい場合は、基本的にsearch.excludeを使用するのが分かりやすいでしょう。

User設定とWorkspace設定を使い分ける

search.excludeは、VSCode全体に適用することも、特定のプロジェクトだけに適用することもできます。

User設定

User設定に追加すると、そのユーザーがVSCodeで開く複数のプロジェクトに共通して適用できます。

例えば、どのプロジェクトでもログファイルを検索したくない場合は、次のように設定できます。

{
    "search.exclude": {
        "**/*.log": true
    }
}

複数のプロジェクトで共通して除外したいルールに向いています。

Workspace設定

特定のプロジェクトだけで除外したい場合は、Workspace設定を利用します。

単一フォルダをワークスペースとして開いている一般的な構成では、設定は次のファイルに保存できます。

.vscode/settings.json

例えば、PHPやLaravelなどのプロジェクトでvendorやログファイルを除外する場合は、次のように設定できます。

{
    "search.exclude": {
        "**/vendor/**": true,
        "**/storage/logs/**": true
    }
}

プロジェクト固有の設定をチームで共有したい場合にも便利です。

なお、複数フォルダをまとめて開くMulti-root Workspaceでは、.code-workspaceファイルなどにワークスペース設定が保存される場合があります。

Windowsでもglobパターンでは「/」を使う

Windowsのファイルパスでは\が使われますが、VSCodeのglobパターンでは基本的に/を使用します。

例えば、次のように記述します。

**/dist/**

次のように記述する必要はありません。

**\dist\**

Windowsを利用している場合でも、VSCodeの検索除外パターンでは/を使うと覚えておくとよいでしょう。

大文字・小文字の扱いはOSによって異なる

globパターンにおける大文字・小文字の扱いは、基本的に利用しているファイルシステムのルールに依存します。

Windowsや一般的なmacOS環境では、大文字と小文字を区別しないことが多くなっています。

一方、Linuxでは通常、大文字と小文字が区別されます。

例えば、Linuxでは次の2つが異なるフォルダとして扱われることがあります。

MyFolder
myfolder

また、WSL、Remote SSH、Dev Containersなどを利用している場合は、ローカルPCではなくリモート側のファイルシステムのルールが適用される点にも注意が必要です。

Web開発で使いやすいsearch.excludeの設定例

Web開発では、依存パッケージや生成ファイル、ログファイルなどを検索対象から除外すると、必要なコードを見つけやすくなります。

例えば、次のような設定が考えられます。

{
    "search.exclude": {
        "**/node_modules/**": true,
        "**/vendor/**": true,
        "**/dist/**": true,
        "**/build/**": true,
        "**/coverage/**": true,
        "**/*.min.js": true,
        "**/*.map": true,
        "**/*.log": true
    }
}

ただし、除外対象はプロジェクトによって異なります。

例えば、vendorや圧縮済みJavaScriptをデバッグする可能性がある場合は、除外しないほうがよいこともあります。

必要なファイルまで検索できなくならないよう、プロジェクトの用途に合わせて設定しましょう。

検索対象から除外されない場合の確認ポイント

設定したはずのファイルが検索結果に表示される場合は、いくつか確認しておきたいポイントがあります。

globパターンが正しいか確認する

search.excludeでは、サブフォルダ内も含めて指定したい場合に**/を利用することがあります。

例えば、どの階層にあるdistフォルダも対象にしたい場合は、次のように設定すると分かりやすいでしょう。

**/dist/**

検索画面の「除外するファイル」とsettings.jsonでは、同じように見える指定でもglobパターンの扱いが異なる場合があります。

そのため、設定が反映されないときはパターンを確認してみましょう。

除外設定を利用するオプションを確認する

検索画面には、除外設定やignoreファイルを検索に反映するための切り替えがあります。

この設定が無効になっていると、search.excludeや.gitignoreで除外している対象が検索結果に含まれることがあります。

検索条件が意図どおりに動作しない場合は、この設定も確認しましょう。

VSCodeで検索対象からファイルを除外する方法のまとめ

VSCodeで不要なファイルやフォルダを検索対象から外す場合は、目的に応じて方法を使い分けることが重要です。

一時的に除外したい場合は、検索画面の「除外するファイル」を利用すると簡単です。

毎回同じ対象を除外したい場合は、search.excludeを設定すると効率的です。

例えば、次のように設定できます。

{
    "search.exclude": {
        "**/node_modules/**": true,
        "**/dist/**": true,
        "**/*.log": true
    }
}

また、Explorer上からも非表示にしたい場合はfiles.exclude、Gitでも管理対象外にしたい場合は.gitignoreを利用できます。

検索結果に不要なファイルが大量に表示されるプロジェクトでは、search.excludeを適切に設定することで、目的のコードや文字列を見つけやすくなります。

特に大規模なWeb開発プロジェクトでは、依存パッケージやビルド成果物、自動生成ファイルなどを検索対象から適切に除外しておくと、VSCodeでのコード調査を効率化できます。

以上、VSCodeで検索対象からファイルを除外する方法についてでした。

最後までお読みいただき、ありがとうございました。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次