0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

VS Code:「どこで使ってる?」を一発で見つける:grepっぽい検索テクまとめ

Posted at

はじめに

プロジェクトで定数や設定キーを変更するとき、最初にやるのが「この文字列どこで使ってる?」の洗い出し。
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 includefiles 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::getdecode( を同時に探す
  • 検索: 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 excludevendor などを入力するのが面倒なら、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. まずは検索(結果一覧で想定通りか確認)
  2. 置換は1件ずつ(Replaceボタン)
  3. 問題なければ全件置換(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 を使うと安心

これらの機能を組み合わせることで、コードの調査やリファクタリングが格段に速く、安全になります。

採用拡大中!

アシストエンジニアリングでは一緒に働くフロントエンド、バックエンドのエンジニア仲間を大募集しています!

少しでも興味ある方は、カジュアル面談からでもぜひお気軽にお話ししましょう!

お問い合わせはこちらから↓

https://official.assisteng.co.jp/contact/

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?