この記事では、Vim / neovim でプラグインを使わずに「gn/gNキーによる検索」のキーバインドについて、ご紹介します。
[解答] 前回検索したキーワードを変更する
こちらの動画を見ていただければ、詳しい動作が分かると思います。

最初にキーワード “url” で検索した後、他の場所へ移動します。
その後、やっぱり前回検索したキーワード “url” を変更(置換)したくなって、cgn と打って直接変更に入っています。
この動作によって省略できるのは、検索 もしくは 移動した後の c キーでの変更です。数ステップは稼げる強力なキーバインドと言えるでしょう。
Vimキーバインド1. 前回の検索キーワードで前方検索して変更する
(ノーマルモード)
cgn
変更のオペレータ c と前方検索&ビジュアル選択するモーション gn の組み合わせです。
あくまで以前に検索を実行していないと動作しませんので、ご注意ください。
Vimキーバインド2. 前回の検索キーワードで後方検索して変更する
(ノーマルモード)
cgN
変更のオペレータ c と後方検索&ビジュアル選択するモーション gn の組み合わせです。
ポイント
この操作の素晴らしいところは、ドットコマンド(.)で繰り返し可能な点です。
動画では二回 cgn を実行しましたが、実は2回目以降は . を繰り返すだけで良かったのです。
このようにオペレータ+モーションで扱えれば、わざわざマクロに記録しなくても簡単に利用することが可能になります。
gn / gN 単体だと使いどころが少ないと思いますが、このようなメリットを知ってしまえば使いどころが多くて便利だとわかるでしょう。
ぜひ身につけてしまいましょう!
このVimコマンドの補足情報
- 利用頻度[star rate=3]
- 便利さ[star rate=5]
- 覚え易さ[star rate=3]
関連するVimヘルプ
Vim のヘルプでは下記のように解説されています。
gn 最後に使われた検索パターンを前方検索し (n のように)、
マッチしたものを選択してビジュアルモードを開始する。
カーソルがマッチの上にあるときは、それをビジュアル選択
する。
オペレータ待ちのときは、マッチに対してオペレータを実行
する。例: “dgn” は次のマッチを削除する。
すでにビジュアルモードなら、次のマッチの末尾まで選択範
囲を拡大する。
‘wrapscan’ が適用される。
Note: n とは異なり、検索方向は前の検索コマンドには依
存しない。gN v_gN
visual – Vim日本語ドキュメント
gN gn と同じだが、後方検索する (N のように)。
こちらは、Vim上では下記のコマンドでヘルプを確認できます。
:help gn :help gN
ヘルプで検索するときは、通常は大文字小文字は識別されませんので、どちらでも構いません。
Vimテクニックを学習する
今回紹介したテクニックが記載された書籍は下記です。
[temp id=3]