この記事では、Vim / neovim でプラグインを使わずに「カーソル下にある単語を検索する」ためのコマンドについて、ご紹介します。
[解答] * / # / g* / g#
検索と言えば、/ や ? を使われることが多いはずです。しかし、同じバッファ内での単純な単語検索であれば、今回ご紹介するコマンドの方が手軽で素早く実行できます。
Vim検索コマンド1. 単語の前方検索
(ノーマルモード)
*
このコマンドで、カーソル位置のキーワード(単語)、もしくは現在の行のカーソルから後ろで現れた最初のキーワード(単語)を後方向もしくは下方向に検索します。
この場合、記号を含めた完全なキーワードを検索します。記号を含めない場合は、次のコマンドで検索します。
(ノーマルモード)
g*
Vim検索コマンド2. 単語の後方検索
(ノーマルモード)
#
このコマンドで、カーソル位置のキーワード(単語)、もしくは現在の行のカーソルから後ろで現れた最初のキーワード(単語)を前方向または上方向に検索します。
同じく、記号を含めた完全なキーワードを検索します。記号を含めない場合は、次のコマンドで検索します。
(ノーマルモード)
g#
このVimコマンドの補足情報
- 利用頻度
- 便利さ
- 覚え易さ
関連する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#
pattern – Vim日本語ドキュメント
g# “#” と似ていますが “\<” と “\>” を単語の周りに加えませ
ん。つまり単語の一部にマッチするものを検索することもで
きます。
こちらは、Vim上では下記のコマンドでヘルプを確認できます。
:help * :help star :help # :help g* :help gstar :help g#
ヘルプで検索するときは、通常は大文字小文字は識別されませんので、どちらでも構いません。
参考書籍
Vim力向上には、こちらの書籍が参考になります。
Vim/neovim関連の書籍で、もっとも評判が良くてバイブルと呼んでる人もいる一冊です。Vim/neovimのバージョンに依存しない沢山のTips形式で、その表題通りに「思考のスピードで編集」できるようになるノウハウが詰まっています。その高い評価は Amazon のレビューからも分かる通りです。Vimmer なら必ず一度は読んでおいて間違いありません。
こちらもVim関連の書籍で評価が高い書籍の一冊です。vim-jpで見かける上級Vimmer(Vimサポーターズ)の皆様による、Vimを実践で使ったノウハウからプラグイン関連の情報が詰まっています。日本の Vim界隈を知る上でも是非一読しておきたい一冊です。
Vim/neovim の設定ファイルやプラグインなど、Vim script に関するノウハウがいくつも詰まった一冊です。日本で Vim Script をここまで深く解説している唯一の書籍と言えます。Vim力を伸ばしたいと考えるなら、絶対に避けては通れない書籍でしょう。