Visual Studio Code

検索と置換

ファイル内検索

Visual Studio Codeはテキスト検索の際に、その範囲をファイル内、選択テキスト内、フォルダ内で行うことができます。まずは基本のファイル内検索を説明します。

ファイル内でテキスト検索するには、ショートカットキーの[Ctrl]+[F]で検索ウィジェットを開きます。ウィジェット内で検索ワードを入力し、[Enter]キーを押すと、該当するワードがあればそのワードが強調表示されます。[Esc]キーを押すとエディタ内にカーソルが戻ります。
一致する結果が複数ある場合、検索ワードの入力ボックス内で[Enter]キーを押すと、次の結果に移動できます。また、[Shift]+[Enter]キーで前の結果に移動できます。

デフォルトの検索ワード

検索ウィジェットを開く際、カーソルがある単語、もしくは選択したテキストが検索ワードとして使われます。選択範囲が空の場合、カーソルの下の単語が入力ボックスに挿入されます。

複数行の検索ワード

検索ワードが複数行ある場合、検索用テキストボックス内で[Ctrl]+[Enter]を押すと改行を入力できます。もしくは、複数行の検索ワードをコピーして、検索用テキストボックスに貼り付けます。

選択テキスト内の検索

デフォルトでは、エディタ内のファイル全体が検索対象ですが、選択したテキスト内で検索することもできます。この機能をオンにするには、検索ウィジェットのハンバーガーアイコンをクリックします。

高度な検索オプション

検索用テキストボックスの右側には、検索オプションボタンが3つ並んでいます。それぞれのボタンは次のような機能になります。

  • 大文字と小文字を区別
    オンにすると大文字/小文字を区別します。
  • 単語単位で検索
    オンにすると検索用語と単語が完全一致するものがマッチします。「keyword」で検索した場合、「keywords」にはマッチしません。
  • 正規表現を使用
    オンにすると正規表現が使えます。

正規表現

正規表現は、文字列中から特定のパターンを見つけ出すための機構です。正規表現で特に重要なのがメタ文字です。正規表現のメタ文字はその文字自体を表すものではありません。メタ文字を使うと、「行頭にあるパターンだけを探す」、「英数字を探す」、「大文字または小文字で始まるパターンだけを探す」など、さまざまな方法で検索パターンを指定することができます。

たとえば、数値全てにマッチさせたい場合、次のような正規表現になります。

[0-9]

これだと、数字1文字ごとにマッチするので、100という文字には3回マッチします。そうではなく、100でも1000でも1ワードとしてマッチさせたい場合、次のような正規表現を使います。

[0-9]{1,}

上記の{1,}は、「少なくても1回以上の繰り返し」という意味になります。

正規表現は非常に多くのメタ文字やオプションが用意されているので、詳しくは正規表現を参考にしてください。ここではよく使うメタ文字をいくつか紹介しておきます。

正規表現の文字クラス
メタ文字説明
[X]ブラケット( [ ] )の中の任意の1文字にマッチします。
文字の間にハイフン( - )を挟み、文字列の範囲を表すことができます。たとえば、[12345]の様に規則的に連続した文字列は、[1-5] と表記できます。[abcd] は [a-d] と表記できます。
[^X]ブラケット( [ ] )の中に含まれない任意の1文字にマッチします。
それ以外は[X]と同じです。
\wアンダースコアを含む英数字の1文字にマッチします。
[a-zA-Z_0-9] と同じです。
\Wアンダースコアを含む英数字以外の1文字にマッチします。
[^a-zA-Z_0-9] と同じです。
\d数字の1文字にマッチします。
[0-9] と同じです。
\D数字以外の1文字にマッチします。
[^0-9] と同じです。
\s空白文字にマッチします。
空白文字にはスペース、タブ、改行などが含まれます。
\S空白文字以外にマッチします。
[\b]リテラルバックスペース(U+0008)にマッチします。
\b と混同しないように、ブラケットで囲みます。
正規表現の量指定子
メタ文字説明
*直前の文字の0回以上の繰り返しにマッチします。
+直前の文字の1回以上の繰り返しにマッチします。
?直前の文字の0個か1個にマッチします。
.改行文字( ¥n )を除く1文字にマッチします。
{m, n}直前の文字がm回以上、n回以下の繰り返しにマッチします。
{m}m回の繰り返しにマッチします。
{m,}m 回以上の繰り返しにマッチします。
{m,n}m回以上、n回以下の繰り返しにマッチします。
正規表現のアンカー
メタ文字説明
^先頭にマッチします。複数行検索になっている場合はすべての行の先頭にもマッチします。
$末尾にマッチします。複数行検索になっている場合はすべての行の末尾にもマッチします。
\b単語の区切りにマッチします。単語に含まれるのは\w(英数字とアンダースコア)のみで、それ以外が単語の区切りと判断されます。
\B単語の区切り以外の文字にマッチします。それ以外は\bと同じです。
X(?=Y)Xの後にYが続く場合のみ X にマッチします。
X(?!Y)Xの後にYが続かない場合のみXにマッチします。

置換

テキストを置換するには[Ctrl]+[H]で検索ウィジェットを表示します。この際の検索ウィジェットは通常時とは異なり、[置換]テキストボックスが追加されます。

[検索]テキストボックスに検索するテキストを入力し、[置換]テキストボックスに置換したい文字を入力します。[Enter]キーを押すと該当する検索ワードを置換します。[Enter]キーは1件毎に置換しますが、[Ctrl]+[Alt]+[Enter]キーを押すと該当する単語を一括で置換します。

フォルダ内全体を検索

エクスプローラービューで表示しているフォルダ内の全てのファイルを検索するには、[Ctrl]+[Shift]+[F]キー、もしくはVS Codeの左端にあるアクティビティバーの検索ボタンをクリックします。サイドバーが検索ビューになるので、検索用テキストボックスに検索ワードを入力してください。

検索条件にマッチしたファイルがあると、エクスプローラービューにファイルリストが表示されます。ファイル名、もしくは行をクリックすると、エディタにファイルが表示されます。行の場合はさらにクリックした行までスクロールします。

検索範囲のオプション

VS Codeの左端にあるアクティビティバーの検索ボタンをクリックすると、サイドバーが検索ビューになります。検索ビューには「含めるファイル」と「除外するファイル」のテキストボックスが用意されています。

  • 含めるファイル
    指定したファイル名、拡張子にマッチするファイルだけを検索対象にする
  • 除外するファイル
    指定したファイル名、拡張子にマッチするファイルを検索対象から除外する

JavaScriptファイルだけを検索対象にしたい場合、「含めるファイル」のテキストボックスに「.js」と入力してください。どのようなファイル名でも拡張子が .js であればマッチします。

「含めるファイル」と「除外するファイル」で次の正規表現を使うこともできます。

メタ文字説明
*1つ以上の文字に一致
?1つの文字に一致
**なしを含む任意の数の文字に一致
{}条件をグループ化
(たとえば、{**/*.js, **/*.scss}すべてのJavaScriptとSCSSファイルに一致)
[]一致する文字の範囲を指定

関連記事