VSCode 検索機能で開発効率を飛躍的に向上させる
Visual Studio Code(VSCode)の検索機能は、コードベースの探索からリファクタリングまで、あらゆる開発作業の根幹を支える重要な機能です。単純なテキスト検索にとどまらず、正規表現による高度なパターンマッチング、シンボルベースのナビゲーション、参照検索(Go to References)まで、VSCodeには多層的な検索機能が実装されています。
本記事では、VSCode 検索機能を体系的に解説し、ファイル内検索からワークスペース全体検索、検索エディタの活用、シンボル検索、参照検索(Go to References)まで、すべての検索機能を網羅します。実践的なユースケースと設定の最適化手法を併せて紹介し、検索機能を使いこなすための完全ガイドとして構成しています。
この記事で得られること
- VSCode ファイル内検索と置換の基本操作から応用テクニック
- ワークスペース全体検索の効率的な使い方と除外パターン設定
- 正規表現検索と大文字小文字変換を使った高度な置換パターン
- 検索エディタ(Search Editor)を活用した検索結果の管理
- シンボル検索(Go to Symbol)とワークスペースシンボル検索
- 参照検索(Go to References)とPeek機能の活用
- 検索関連設定の最適化とパフォーマンスチューニング
前提条件と実行環境
VSCode 検索機能を効果的に活用するための環境要件を確認します。
| 項目 | 要件 |
|---|---|
| VSCode | バージョン1.80以上を推奨(1.96以降で検索機能が大幅強化) |
| OS | Windows 10/11、macOS 10.15以上、Linux |
| 言語サービス | TypeScript/JavaScript、Python、Java等の言語拡張(シンボル検索・参照検索に必要) |
キー表記の凡例
本記事では、Windows/Macの両方に対応した表記を使用します。
| 表記 | Windows | Mac |
|---|---|---|
Ctrl |
Ctrlキー | Cmdキー |
Alt |
Altキー | Optionキー |
Shift |
Shiftキー | Shiftキー |
VSCode ファイル内検索の基本操作
VSCode ファイル内検索は、現在開いているエディタ内でテキストを検索・置換する最も基本的な機能です。Ctrl+F(Mac: Cmd+F)で検索ウィジェットが開き、入力と同時にリアルタイムで検索が実行されます。
検索ウィジェットの起動と基本操作
| 操作 | Windows | Mac | 説明 |
|---|---|---|---|
| 検索を開く | Ctrl+F |
Cmd+F |
検索ウィジェットを表示 |
| 置換を開く | Ctrl+H |
Cmd+H |
検索・置換ウィジェットを表示 |
| 次の一致へ移動 | Enter / F3 |
Enter / Cmd+G |
次の検索結果へジャンプ |
| 前の一致へ移動 | Shift+Enter / Shift+F3 |
Shift+Enter / Cmd+Shift+G |
前の検索結果へジャンプ |
| すべての一致を選択 | Alt+Enter |
Option+Enter |
全一致箇所にカーソルを配置 |
| 検索を閉じる | Escape |
Escape |
検索ウィジェットを閉じる |
VSCode 検索では、検索ウィジェットを開いた時点でエディタ内の選択テキストまたはカーソル位置の単語が自動的に検索ボックスに入力されます。この動作はeditor.find.seedSearchStringFromSelection設定で制御できます。
検索オプションの切り替え
VSCode 検索には、検索精度を高めるための3つの主要オプションがあります。
| オプション | Windows | Mac | 説明 |
|---|---|---|---|
| 大文字小文字を区別 | Alt+C |
Option+C |
大文字と小文字を区別して検索 |
| 単語単位で検索 | Alt+W |
Option+W |
単語境界でのみマッチ |
| 正規表現を使用 | Alt+R |
Option+R |
正規表現パターンで検索 |
|
|
選択範囲内検索
大きなファイルで特定の範囲内だけを検索したい場合、選択範囲内検索が有効です。Alt+L(Mac: Option+L)で選択範囲内検索モードを切り替えられます。
|
|
設定値には以下の3つがあります。
| 設定値 | 動作 |
|---|---|
never |
選択範囲内検索を自動で有効化しない |
always |
常に選択範囲内検索を有効化 |
multiline |
複数行選択時のみ自動で有効化(推奨) |
複数行検索
VSCode 検索では、複数行にまたがるテキストパターンも検索できます。検索ボックス内でCtrl+Enterを押すと改行を挿入でき、複数行のテキストを検索対象に指定できます。
長いテキストを検索する場合、検索ウィジェットの左端をドラッグしてサイズを拡大できます。ダブルクリックで最大化/デフォルトサイズに切り替わります。
ワークスペース全体検索の活用
VSCode ワークスペース検索(Ctrl+Shift+F)は、プロジェクト全体のファイルを横断して検索する機能です。関数名の使用箇所の把握、APIエンドポイントの追跡、設定値の確認など、コードベース全体を俯瞰する作業に不可欠です。
ワークスペース検索の基本操作
| 操作 | Windows | Mac | 説明 |
|---|---|---|---|
| ワークスペース検索を開く | Ctrl+Shift+F |
Cmd+Shift+F |
検索ビューを表示 |
| ワークスペース置換を開く | Ctrl+Shift+H |
Cmd+Shift+H |
検索・置換ビューを表示 |
| 検索詳細オプションの切り替え | Ctrl+Shift+J |
Cmd+Shift+J |
含める/除外するファイルの入力欄を表示 |
検索結果はファイルごとにグループ化され、各ファイル内のヒット数と位置が表示されます。結果をクリックすると該当箇所がエディタで開きます。
検索対象ファイルの絞り込み
VSCode ワークスペース検索では、検索対象を特定のファイルやフォルダに限定できます。検索詳細オプション(Ctrl+Shift+J)を展開すると、「含めるファイル」と「除外するファイル」の入力欄が表示されます。
|
|
Globパターンの詳細
VSCode 検索で使用できるGlobパターンの構文を理解すると、より精密な検索対象の指定が可能になります。
| パターン | 説明 | 例 |
|---|---|---|
* |
0文字以上の任意の文字(パス区切り除く) | *.ts → すべてのTSファイル |
** |
任意の階層のパス | src/**/*.ts → src以下の全TS |
? |
任意の1文字 | file?.ts → file1.ts, fileA.ts |
{} |
OR条件のグループ化 | {*.ts,*.js} → TSまたはJS |
[] |
文字クラス | file[0-9].ts → file0.ts〜file9.ts |
[!...] |
否定文字クラス | file[!0-9].ts → fileA.ts等 |
フォルダから検索(Find in Folder)
エクスプローラービューでフォルダを右クリックし、「フォルダーで検索」を選択すると、そのフォルダ内に限定した検索が開始されます。大規模プロジェクトで特定のモジュールやコンポーネント内を検索する際に便利です。
クイック検索(Quick Search)
コマンドパレット(Ctrl+Shift+P)から「Search: Quick Search」を実行すると、ワークスペース全体をすばやく検索できるクイック検索が利用できます。検索結果がドロップダウンで表示され、即座にファイルを開けます。
VSCode 検索の除外パターン設定
効率的なワークスペース検索には、不要なファイルやフォルダを除外する設定が重要です。VSCodeでは複数の設定で除外パターンを管理します。
files.excludeとsearch.excludeの違い
| 設定 | 適用範囲 | 推奨用途 |
|---|---|---|
files.exclude |
エクスプローラー、検索、クイックオープン | 常に非表示にしたいファイル |
search.exclude |
検索のみ | 検索からは除外したいが、エクスプローラーには表示したいファイル |
|
|
.gitignoreとの連携
検索ビューの「除外するファイル」入力欄には、「除外設定と無視ファイルを使用」トグルボタンがあります。このボタンがオンの場合、.gitignoreで指定されたファイルとfiles.exclude/search.excludeで指定されたファイルの両方が検索から除外されます。
外部ライブラリやビルド出力も検索対象に含めたい場合は、このトグルをオフにします。
プロジェクト固有の除外設定
.vscode/settings.jsonにプロジェクト固有の除外パターンを設定できます。チームで共有することで、全員が同じ検索体験を得られます。
|
|
正規表現検索の実践テクニック
VSCode 正規表現検索は、パターンマッチングによる高度な検索・置換を可能にします。Alt+R(Mac: Option+R)で正規表現モードを有効化できます。
基本的な正規表現パターン
| パターン | 意味 | 使用例 |
|---|---|---|
. |
任意の1文字 | a.c → abc, aXc |
* |
直前の文字が0回以上 | ab*c → ac, abc, abbc |
+ |
直前の文字が1回以上 | ab+c → abc, abbc |
? |
直前の文字が0回または1回 | ab?c → ac, abc |
^ |
行頭 | ^function → 行頭のfunction |
$ |
行末 | ;\s*$ → 行末のセミコロン |
\d |
数字 | \d+ → 123, 45 |
\w |
英数字とアンダースコア | \w+ → word_123 |
\s |
空白文字 | \s+ → スペース、タブ、改行 |
\b |
単語境界 | \bword\b → word(部分一致除外) |
キャプチャグループと後方参照
正規表現の括弧()でキャプチャしたグループは、置換文字列で$1、$2として参照できます。
|
|
大文字小文字変換(Case Changing)
VSCode 正規表現置換では、キャプチャグループの大文字小文字を変換できます。
| 修飾子 | 効果 | 例 |
|---|---|---|
\u |
次の1文字を大文字に | \u$1 → Hello |
\l |
次の1文字を小文字に | \l$1 → hello |
\U |
以降すべてを大文字に | \U$1 → HELLO |
\L |
以降すべてを小文字に | \L$1 → hello |
|
|
複合的な変換も可能です。
|
|
実践的な正規表現検索パターン集
コンソールログの検索と削除
|
|
import文の検索
|
|
コメント行の検索
|
|
TODO/FIXMEコメントの検索
|
|
検索エディタ(Search Editor)の活用
VSCode 検索エディタは、検索結果を通常のエディタタブで表示する機能です。検索結果を俯瞰し、コンテキスト(前後の行)を確認しながらコードを分析できます。
検索エディタの開き方
| 方法 | 説明 |
|---|---|
| 検索ビューのボタン | 検索ビュー上部の「新しい検索エディターを開く」ボタン |
| コマンドパレット | 「Search Editor: Open New Search Editor」を実行 |
| 検索結果から | 検索ビューの結果ツリー上部「エディターで開く」リンク |
検索エディタの特徴
検索エディタでは、検索結果がシンタックスハイライト付きで表示され、各結果の前後に指定した行数のコンテキストが表示されます。
|
|
検索エディタからのナビゲーション
検索エディタの結果から元のファイルへジャンプする方法があります。
| 操作 | Windows | Mac | 説明 |
|---|---|---|---|
| 定義へ移動 | F12 |
F12 |
現在のエディタグループで開く |
| 横に定義を開く | Ctrl+K F12 |
Cmd+K F12 |
隣のエディタグループで開く |
検索エディタの設定
|
|
キーバインドによる検索エディタのカスタマイズ
|
|
シンボル検索(Go to Symbol)
VSCode シンボル検索は、関数、クラス、変数、インターフェースなどのプログラム要素を検索する機能です。テキスト検索とは異なり、言語サービスが解析した構造情報に基づいて検索します。
ファイル内シンボル検索
Ctrl+Shift+O(Mac: Cmd+Shift+O)でファイル内のシンボル一覧が表示されます。
| 入力 | 動作 |
|---|---|
| シンボル名 | 名前で絞り込み |
: で始める |
カテゴリ(関数、クラス等)でグループ化 |
@ で始める |
シンボル検索(Ctrl+Shift+Oと同等) |
graph LR
A[Ctrl+Shift+O] --> B{入力}
B -->|シンボル名| C[名前で絞り込み]
B -->|:で始める| D[カテゴリ別表示]
C --> E[選択でジャンプ]
D --> Eワークスペースシンボル検索
Ctrl+T(Mac: Cmd+T)でワークスペース全体からシンボルを検索できます。ファイルを跨いでクラスや関数を探す際に非常に強力です。
|
|
クイックオープンからのシンボル検索
Ctrl+P(Mac: Cmd+P)で開くクイックオープンから、特殊な接頭辞を使ってシンボル検索を呼び出せます。
| 接頭辞 | 機能 | 例 |
|---|---|---|
@ |
ファイル内シンボル検索 | @handleClick |
@: |
ファイル内シンボル(カテゴリ別) | @:function |
# |
ワークスペースシンボル検索 | #UserService |
参照検索(Go to References)とPeek機能
VSCode 参照検索は、シンボルが使用されているすべての箇所を検索する機能です。リファクタリングや影響範囲の調査に不可欠です。
参照検索の基本操作
| 操作 | Windows | Mac | 説明 |
|---|---|---|---|
| すべての参照を検索 | Shift+F12 |
Shift+F12 |
Peekウィンドウで参照一覧を表示 |
| すべての参照へ移動 | Alt+Shift+F12 |
Option+Shift+F12 |
サイドパネルに参照一覧を表示 |
| 定義へ移動 | F12 |
F12 |
定義箇所にジャンプ |
| 定義をPeek | Alt+F12 |
Option+F12 |
Peekウィンドウで定義を表示 |
| 型定義へ移動 | - | - | コマンドパレットから実行 |
| 実装へ移動 | Ctrl+F12 |
Cmd+F12 |
インターフェースの実装箇所へジャンプ |
Peekウィンドウの操作
Peekウィンドウは、エディタ内にインラインで表示される小さなエディタです。参照元を確認しながら、その場で編集もできます。
| 操作 | 動作 |
|---|---|
| 上下キー | 参照間を移動 |
Enter |
選択した参照を開く |
Escape |
Peekウィンドウを閉じる |
| 右クリック | コンテキストメニュー |
|
|
定義へ移動の詳細機能
Ctrlキーを押しながらシンボルにホバーすると、定義のプレビューがツールチップで表示されます。そのままCtrl+Clickで定義にジャンプ、Ctrl+Alt+Clickで横に定義を開きます。
graph TB
A[シンボル上でCtrl+ホバー] --> B[定義プレビュー表示]
B --> C{クリック}
C -->|Ctrl+Click| D[定義へジャンプ]
C -->|Ctrl+Alt+Click| E[横に定義を開く]シンボル名の変更(Rename Symbol)
F2キーで、シンボルの名前をワークスペース全体で一括変更できます。VSCode 参照検索の情報を活用して、すべての使用箇所を自動的に更新します。
|
|
コードナビゲーション機能
VSCode 検索機能と密接に関連するコードナビゲーション機能を紹介します。
ブレッドクラム(Breadcrumbs)
エディタ上部に表示されるブレッドクラムは、現在位置のファイルパスとシンボルパスを表示します。各要素をクリックすると、兄弟要素のドロップダウンが表示され、素早くナビゲートできます。
| 操作 | Windows | Mac | 説明 |
|---|---|---|---|
| ブレッドクラムにフォーカス | Ctrl+Shift+. |
Cmd+Shift+. |
最後の要素を選択してドロップダウン表示 |
| ブレッドクラムを選択 | Ctrl+Shift+; |
Cmd+Shift+; |
ドロップダウンなしで最後の要素にフォーカス |
問題パネル(Problems Panel)
Ctrl+Shift+Mで問題パネルを開き、プロジェクト全体のエラーと警告を一覧表示できます。VSCode 検索機能と組み合わせて、問題のあるコードを効率的に特定・修正できます。
| 操作 | Windows | Mac | 説明 |
|---|---|---|---|
| 問題パネルを開く | Ctrl+Shift+M |
Cmd+Shift+M |
エラーと警告の一覧を表示 |
| 次のエラーへ移動 | Alt+F8 |
Option+F8 |
現在ファイルの次のエラーへ |
| 前のエラーへ移動 | Shift+Alt+F8 |
Shift+Option+F8 |
現在ファイルの前のエラーへ |
検索関連設定の最適化
VSCode 検索機能のパフォーマンスと使いやすさを最適化する設定をまとめます。
推奨設定一覧
|
|
設定の解説
| 設定 | 推奨値 | 効果 |
|---|---|---|
search.smartCase |
true |
検索語が全て小文字なら大文字小文字を無視、大文字を含むなら区別 |
search.showLineNumbers |
true |
検索結果に行番号を表示 |
search.followSymlinks |
false |
シンボリックリンクを追跡しない(パフォーマンス向上) |
search.collapseResults |
auto |
結果数に応じて自動的に折りたたみ |
大規模プロジェクトでの最適化
大規模なコードベースで検索パフォーマンスを維持するための追加設定です。
|
|
実践的なワークフロー
リファクタリングワークフロー
関数名を変更するリファクタリングの典型的なワークフローです。
- 影響範囲の調査: 関数上で
Shift+F12(参照検索)を実行し、使用箇所を確認 - 型情報の確認:
Alt+F12(定義をPeek)で戻り値の型を確認 - 一括変更:
F2(Rename Symbol)で安全に名前を変更 - 検証:
Ctrl+Shift+M(問題パネル)でエラーがないことを確認
デバッグワークフロー
エラーメッセージからソースコードを特定するワークフローです。
- エラー文字列で検索:
Ctrl+Shift+Fでエラーメッセージをワークスペース検索 - 関連コードの探索: 見つかった箇所から
Shift+F12で参照を追跡 - 呼び出し元の特定: ブレッドクラムとPeek機能で呼び出し階層を把握
- 修正と確認: 修正後、
Ctrl+Shift+Mでエラーが解消されたことを確認
コードレビューワークフロー
レビュー時に特定パターンを探すワークフローです。
- 検索エディタで概観:
Search Editor: Open New Search Editorで検索エディタを開く - 正規表現で危険パターンを検索:
eval\(|innerHTML\s*=|document\.writeなどのセキュリティリスクパターン - コンテキスト確認: 検索エディタのコンテキスト行で前後のコードを確認
- 該当箇所へジャンプ:
F12で元のファイルを開いて詳細確認
ショートカット一覧
VSCode 検索機能に関連する主要なショートカットをまとめます。
ファイル内検索
| 操作 | Windows | Mac |
|---|---|---|
| 検索を開く | Ctrl+F |
Cmd+F |
| 置換を開く | Ctrl+H |
Cmd+H |
| 次の一致 | Enter / F3 |
Enter / Cmd+G |
| 前の一致 | Shift+Enter / Shift+F3 |
Shift+Enter / Cmd+Shift+G |
| 全一致を選択 | Alt+Enter |
Option+Enter |
| 大文字小文字を区別 | Alt+C |
Option+C |
| 単語単位 | Alt+W |
Option+W |
| 正規表現 | Alt+R |
Option+R |
| 選択範囲内検索 | Alt+L |
Option+L |
ワークスペース検索
| 操作 | Windows | Mac |
|---|---|---|
| ワークスペース検索 | Ctrl+Shift+F |
Cmd+Shift+F |
| ワークスペース置換 | Ctrl+Shift+H |
Cmd+Shift+H |
| 検索詳細オプション | Ctrl+Shift+J |
Cmd+Shift+J |
シンボル検索とナビゲーション
| 操作 | Windows | Mac |
|---|---|---|
| ファイル内シンボル | Ctrl+Shift+O |
Cmd+Shift+O |
| ワークスペースシンボル | Ctrl+T |
Cmd+T |
| 定義へ移動 | F12 |
F12 |
| 定義をPeek | Alt+F12 |
Option+F12 |
| 参照を検索 | Shift+F12 |
Shift+F12 |
| 実装へ移動 | Ctrl+F12 |
Cmd+F12 |
| シンボル名変更 | F2 |
F2 |
まとめ
VSCode 検索機能は、テキスト検索、正規表現検索、シンボル検索、参照検索という多層的な機能を提供しています。それぞれの特性を理解し、適切な場面で使い分けることで、コードベースの探索とリファクタリングを効率的に行えます。
検索関連の設定を最適化し、ショートカットを習得することで、VSCodeの検索機能を最大限に活用できるようになります。特に大規模プロジェクトでは、除外パターンの適切な設定がパフォーマンスと生産性に大きく影響します。
本記事で紹介したテクニックを日常の開発に取り入れ、VSCodeの検索機能をマスターしてください。
参考リンク
- Visual Studio Code - Basic Editing - VSCode公式ドキュメント(検索・置換)
- Visual Studio Code - Code Navigation - VSCode公式ドキュメント(コードナビゲーション)
- Visual Studio Code - Glob Patterns - Globパターンリファレンス
- Visual Studio Code - Settings Reference - 設定リファレンス