はじめに
プロジェクトで定数や設定キーを変更するとき、最初にやるのが「この文字列どこで使ってる?」の洗い出し。
VS Codeの検索を少し工夫すると、grep感覚で 漏れなく・速く 追えるようになります。
この記事では、検索対象とする文字列の例として PAYMENT_TERM_CODE を使います(架空の名称です)。
1. 基本的な検索と絞り込み
まずは基本の検索方法と、誤爆を減らすためのTIPSです。
全体検索の基本
-
全体検索:
Cmd + Shift + F(Mac) /Ctrl + Shift + F(Win) -
ファイル内検索:
Cmd + F
文字列を選択してから
Cmd + Shift + Fで、その文字を検索欄に入れた状態で開けます
検索欄の右側にある3つのアイコンが重要です。
-
Aa:大文字小文字を区別 -
Ab:単語単位で一致(誤爆が減る) -
.*:正規表現
“漏れない”検索の型
1) まずは素直に検索
-
検索欄:
PAYMENT_TERM_CODE
ヒットが多い時だけ、次の絞り込みを足します。
2) 誤爆を減らす(単語一致)
-
AbをON
PAYMENT_TERM_CODE_Xのような別名に当たるのを防げます。
2. 高度な検索テクニック
検索範囲の指定や正規表現を使うと、より強力な検索ができます。
範囲を絞るのが最強:include / exclude
検索欄の下にある files to include と files to exclude を使うと、精度も速度も一気に上がります。
Files to include(対象を絞る)
- PHP/テンプレだけ:
**/*.php, **/*.volt - JS/TSだけ:
**/*.js, **/*.ts - 特定ディレクトリだけ:
app/**
Files to exclude(ノイズを消す)
- 定番はこれ:
**/vendor/**, **/node_modules/**, **/dist/**, **/build/**, **/.git/**
「まず
app/**に絞る」→「足りなければ範囲を広げる」がおすすめです。
grepっぽい検索(正規表現)
.*(正規表現)をONにすると、OR検索や“呼び出し箇所だけ”の抽出ができます。
OR検索(どっちかに当てたい)
- 例:
Config::getとdecode(を同時に探す -
検索:
Config::get|decode\(
関数呼び出しだけ拾う
- 例:
decode(の呼び出しに限定 -
検索:
\bdecode\( -
\bは単語境界。mydecode(みたいな誤爆を減らせます。
よくある用途別:検索レシピ集
1) 定数がどこで参照されてるか
-
検索:
PAYMENT_TERM_CODE -
include:
**/*.php, **/*.js, **/*.ts
2) 「定義元」っぽいところを探す(正規表現ON)
- 代入を探す:
PAYMENT_TERM_CODE\s*= - 定数定義を探す:
const\s+PAYMENT_TERM_CODE\b
3) 設定取得のキーとして使われてる箇所を追う(正規表現ON)
-
検索:
Config::get\(\s*["']PAYMENT_TERM_CODE["']\s*\)
4) SQL/クエリ文字列として紛れてる箇所を探す(正規表現ON)
-
検索:
["']PAYMENT_TERM_CODE["']
3. 検索設定の効率化と安全な置換
毎回条件を指定する手間を省く設定や、安全に置換を行う手順です。
毎回「Files to exclude」を打たない方法 (search.exclude)
毎回 files to exclude に vendor などを入力するのが面倒なら、VS Codeの設定 search.exclude に除外ルールを固定できます。
プロジェクト直下に .vscode/settings.json を作成して、以下を追加するのがおすすめです。
{
"search.exclude": {
"**/node_modules": true,
"**/vendor": true,
"**/dist": true,
"**/build": true,
"**/.git": true,
"**/.next": true
}
}
補足: 検索窓の右側にある歯車アイコン (Use Exclude Settings and Ignore Files) をクリックすると、この
search.excludeや.gitignoreの設定を一時的に無視して検索できます。設定を切り替えたい時に便利です。
安全な置換の手順
全体置換 (Cmd + Shift + H) は強力ですが、事故を防ぐために以下の手順がおすすめです。
- まずは検索(結果一覧で想定通りか確認)
- 置換は1件ずつ(Replaceボタン)
- 問題なければ全件置換(Replace Allボタン)
※このとき include/exclude で範囲を絞っておくとさらに安全です。
4. 最終確認としてのCLIツール
VS Codeの検索で取りこぼしが不安な場合や、より高速に検索したい場合は、ターミナルで rg (ripgrep) を使うと便利です。
# 基本的な検索
rg "PAYMENT_TERM_CODE"
# ディレクトリや拡張子を指定
rg "PAYMENT_TERM_CODE" app --glob "*.php"
おわりに
VS Codeの検索機能を使いこなすためのTIPSをまとめました。
- まずはそのまま検索 → ヒットが多ければ
Ab(単語一致) - 検索の精度と速度は、
include/excludeの指定でほぼ決まる - 正規表現で OR検索 / 呼び出し限定 ができる
-
search.excludeを設定すると 毎回除外を書く手間が消える - 最後の保険に
rgを使うと安心
これらの機能を組み合わせることで、コードの調査やリファクタリングが格段に速く、安全になります。
採用拡大中!
アシストエンジニアリングでは一緒に働くフロントエンド、バックエンドのエンジニア仲間を大募集しています!
少しでも興味ある方は、カジュアル面談からでもぜひお気軽にお話ししましょう!
お問い合わせはこちらから↓