← Vim研究所

Vimの検索コマンドラインで単語を補完する(Ctrl-r Ctrl-w)

2026-08-03 公開

長い変数名を検索したいのに、綴りを間違えないよう慎重に入力していた。カーソル下の単語をそのまま検索したいだけなら*で十分だが、検索キーワードの一部だけ自分で入力し、残りを補完したい場面もある。

基本の補完

/{検索キーワードの一部}Ctrl-r Ctrl-w

検索モードで/を押したあと、キーワードを途中まで入力してからCtrl-r Ctrl-wを実行すると、カーソル位置にある単語がコマンドラインに挿入される。完全一致検索の*と違い、挿入された文字列をさらに手で編集してから検索できるのが違いになる。

関連する補完キー

キー挿入される内容
Ctrl-r Ctrl-wカーソル下の単語
Ctrl-r Ctrl-aカーソル下のWORD(記号込み)
Ctrl-r Ctrl-fカーソル下のファイル/ディレクトリパス
Ctrl-r "無名レジスタの内容

Ctrl-rはコマンドラインモード共通の「レジスタから挿入する」仕組みで、Ctrl-wCtrl-fのような特殊キーはカーソル下の情報を一時的にレジスタ経由で取り込んでいるイメージだ。Ctrl-r "で無名レジスタの内容を挿入できることを知っておくと、直前にヤンクした文字列をそのまま検索したいときにも応用できる。

置換コマンドでも同じように使える

この補完は検索コマンドラインに限らず、:%s/のような置換コマンドを打っているときにも同じキーで使える。置換前のパターンにカーソル下の単語を含めたいときなど、置換コマンドを打ちながら単語を取り込みたい場面でも同じ操作が通用する。

単語検索(*/#)との使い分け

カーソル下の単語をそのまま完全一致で検索したいだけなら*/#のほうが手数が少ない。一方、単語の前後に何か文字を足したい、複数の単語を組み合わせて検索パターンを作りたい、といった加工が必要な場合はこちらの補完のほうが柔軟に対応できる。

要点:カーソル下の単語をそのまま検索するだけなら*、検索パターンを自分で加工したいならCtrl-r Ctrl-wで単語だけを取り込んで編集する。
使ってみて

長い関数名の前方一致で検索したいことがあり、*だと完全一致になってしまうため使えなかった。Ctrl-r Ctrl-wで関数名をコマンドラインに挿入してから末尾を編集し、前方一致のパターンに仕立てる、という使い方を覚えてから、検索の自由度が一段階上がった。

コマンド履歴の補完と組み合わせる

コマンドラインモード全般で使えるCtrl-r系の補完は、検索・置換に限らずどのExコマンドを打っているときにも共通して使える。カーソル下の情報を都度手打ちする代わりにこの仕組みを使う癖をつけておくと、検索以外の場面でも入力の手間を減らせる。1つのキー操作を複数の場面で使い回せると分かると、覚えるコマンドの数の割に応用範囲が広がっていく感覚がある。

まとめ

検索キーワードの補完は、完全一致で済む*系では対応できない「一部を自分で加工したい」場面で威力を発揮する。用途に応じて使い分けるとよい。

← Vim研究所 トップへ戻る