[Vim問題] カーソル下にある単語を検索する方法とは?

カーソル下にある単語を検索

この記事では、Vim / neovim でプラグインを使わずに「カーソル下にある単語を検索する」ためのコマンドについて、ご紹介します。

[解答] * / # / g* / g#

検索と言えば、/ や ? を使われることが多いはずです。しかし、同じバッファ内での単純な単語検索であれば、今回ご紹介するコマンドの方が手軽で素早く実行できます。

Vim検索コマンド1. 単語の前方検索

(ノーマルモード)
*

このコマンドで、カーソル位置のキーワード(単語)、もしくは現在の行のカーソルから後ろで現れた最初のキーワード(単語)を後方向もしくは下方向に検索します。

単語の前方検索
単語の前方検索

この場合、記号を含めた完全なキーワードを検索します。記号を含めない場合は、次のコマンドで検索します。

(ノーマルモード)
g*

Vim検索コマンド2. 単語の後方検索

(ノーマルモード)
#

このコマンドで、カーソル位置のキーワード(単語)、もしくは現在の行のカーソルから後ろで現れた最初のキーワード(単語)を前方向または上方向に検索します。

単語の後方検索
単語の後方検索

同じく、記号を含めた完全なキーワードを検索します。記号を含めない場合は、次のコマンドで検索します。

(ノーマルモード)
g#

このVimコマンドの補足情報

  • 利用頻度[star rate=4]
  • 便利さ[star rate=4]
  • 覚え易さ[star rate=4]

関連するVimヘルプ

Vim のヘルプでは下記のように解説されています。

star E348 E349
*                       [count] 番目にマッチする単語を前方検索します。検索され
                        る単語は、カーソルに最も近い単語です。次の順番で選択さ
                        れます:
                                1. カーソル位置のキーワード ‘iskeyword’
                                2. 現在行の、カーソルの後ろの最初のキーワード
                                3. カーソル位置の単語 (WORD)
                                4. 現在行の、カーソルの後ろの最初の単語
                        “/\<keyword\>” と検索するのと同じように、完全なキー
                        ワードのみ検索されます。exclusive(排他的)
                        ‘smartcase’ ではなく ‘ignorecase’ の設定が使われます。

#
#                       “*” と同じですが、後方検索します。ポンド記号 (文字コー
                        ド 163) でも動作します。”#” キーがバックスペースとして
                        動作する場合は、Vim を起動する前に “stty erase <BS>”
                        としてみてください (<BS> は CTRL-Hもしくは本当のバック
                        スペースです)。

gstar
g*                      “*” と似ていますが “\<” と “\>” を単語の周りに加えませ
                        ん。つまり単語の一部にマッチするものを検索することもで
                        きます。

g#
g#                      “#” と似ていますが “\<” と “\>” を単語の周りに加えませ
                        ん。つまり単語の一部にマッチするものを検索することもで
                        きます。

pattern – Vim日本語ドキュメント

こちらは、Vim上では下記のコマンドでヘルプを確認できます。

:help *
:help star
:help #
:help g*
:help gstar
:help g#

ヘルプで検索するときは、通常は大文字小文字は識別されませんので、どちらでも構いません。

参考書籍

Vim力向上には、こちらの書籍が参考になります。

[temp id=3]

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

Vim力アップして、そろそろ上級 Vimmer の仲間入りしたいIT系エンジニアの端くれです。読んでくる訪問者の皆様と一緒に、Vim力を上げていくことができる記事が書ければと考えています。