Vimの検索と置換 — /, ?, :s, :%s コマンド

Vimでのテキスト検索と置換の完全ガイド。前方/後方検索、カーソル下の単語検索、置換コマンド、グローバル置換、確認モードをカバー。

Search/Replace

詳細な説明

Vimでの検索

基本的な検索

コマンド アクション
/{pattern} パターンを前方検索
?{pattern} パターンを後方検索
n 次のマッチに移動(同じ方向)
N 前のマッチに移動(逆方向)
* カーソル下の単語を前方検索
# カーソル下の単語を後方検索

検索オプション

設定 効果
:set ignorecase 大文字小文字を区別しない検索
:set smartcase パターンに大文字がある場合のみ大文字小文字を区別
:set hlsearch すべてのマッチをハイライト
:set incsearch 入力中にマッチを表示
:noh 検索ハイライトをクリア

置換(Replace)コマンド

置換コマンドは以下のパターンに従います:

:[range]s/{pattern}/{replacement}/[flags]

一般的な置換パターン

コマンド スコープ
:s/old/new/ 現在行の最初の出現
:s/old/new/g 現在行のすべての出現
:%s/old/new/g ファイル全体のすべての出現
:%s/old/new/gc すべての出現を確認付きで
:5,20s/old/new/g 5行目から20行目
:'<,'>s/old/new/g Visual選択範囲内

便利なフラグ

フラグ 意味
g グローバル(行の最初だけでなくすべてのマッチ)
c 各置換を確認
i 大文字小文字を区別しない
I 大文字小文字を区別する
n 置換せずにマッチ数をカウント

応用:キャプチャグループの使用

:%s/\(\w\+\) \(\w\+\)/\2 \1/g

これはスペースで区切られた2つの単語をキャプチャグループ \1\2 を使って入れ替えます。

ユースケース

ファイル内のテキストパターンを見つけ、オプションとして各マッチの手動確認付きまたはグローバルに置換する必要がある場合。

試してみる — Vim Cheat Sheet

フルツールを開く