ろぐれこーど

限界組み込みエンジニアの学習記録とちょっぴりポエム

VScodeでファイルの表示・検索・監視のExclude設定をする

ファイルの多いディレクトリをVScodeで開くと動作が重くなったり、grep検索の結果が見づらくなります。その対策として各種Exclude設定を調べたのでメモします。versionは以下を想定。

globパターンの記述

Exclude設定には、globと呼ばれるファイル名のパターンマッチングを表現するルールを使用します。globについては以下が詳しそうです。

www.atmarkit.co.jp

正規表現ほど柔軟ではないですが、ファイル名のパターンマッチングでそこまで複雑な操作をすることは稀なので、十分使える表現です。UNIXのglobでは主に以下の表現が使えます。

記号 概要 使用例(要求)
* 0文字以上の任意の文字列にマッチ 拡張子.txtのファイル *.txt
? 任意の1文字にマッチ 先頭が任意、その後"001"と続くファイル ?001
[ ] [ ]に含まれるいずれか1文字にマッチ "test0~test9"のファイル test[0-9]
! パターンの否定 A~Zで始まるファイル以外 [!A-Z]*
** 指定ディレクトリ以下を再起的に探索してマッチ "AA"ディレクトリ以下の.txtファイル AA/**/*.txt

Exclude設定

エクスプローラの表示ファイルから除外(Files: Exclude)

VScodeディレクトリを開いたときに、エクスプローラに表示されるファイルを除外することができます。ライブラリや設定ファイルを検索から除外するときに有効です。

Ctrl+,(macならCmd+,)で設定タブを開き、検索窓にfiles.excludeと入力すると該当の設定項目が開けます。

f:id:gco46:20201122142754p:plain

「パターンを追加」をクリックし、glob形式で除外したいファイルを記述します。setting.jsonに以下のように記述しても同様の設定が可能です。

{
    "search.exclude": {
        "**/.git": true,
        "**/.svn": true,
        "**/.hg": true,
        "**/CSV": true,
        "**/.DS_Store": true,
    }
}

検索結果から特定ファイルを除外(Search: Exclude)

VScodeでは開いたディレクトリ内でgrep検索が可能ですが、予め特定のファイルを検索対象から除外することができます。

設定タブから検索窓にsearch.excludeと入力し、設定します。

f:id:gco46:20201122142816p:plain

検索時に「除外するファイル」の右にあるスイッチをONにすると設定を反映した検索が可能です。(ここで検索毎に除外ファイルを指定することも可能です) f:id:gco46:20201122143634p:plain:w400

監視ファイルを除外(Files: Watcher Exclude)

VSCodeは使用中の動作を高速化するために、起動時にメモリを消費してディレクトリ内をある程度読み出してから起動します。サイズの大きいディレクトリを開こうとするとその分メモリを多く消費しますが、VSCodeが監視するファイルを除外するとこれを緩和できます。

設定タブから検索窓に'search.watcher'と入力し、設定します。設定後は再起動が必要です。

f:id:gco46:20201122142926p:plain

注意点

便利なexclude設定ですが、現状では例外設定がやりにくいです。例えばAAAディレクトリは検索から除外したいけど、AAAディレクトリ内のBBBだけは表示したい、といったときに

{
    "search.exclude": {
        "AAA/*": true,
        "!AAA/BBB": true,
    }
}

とか書くとできそうな気がしますが、環境によってできたりできなかったりするようです。これに関しては以下のissueで報告されています。

github.com

2015年にOpenして未だにCloseしていないのでMicrosoft的には優先度が低いバグなのかもしれません。我こそはという人は修正してpull requestしていただけると自分も助かります。。

まとめ

3つのExclude設定について述べました。VScodeはデフォルトでもそれなりに使い勝手の良いエディタですが、細かい設定をするとより扱い易くなります。進捗が出ないときなんかは息抜きに調べてみると良い気分転換になるのでおすすめです。