この記事では、Vim / neovim でプラグインを使わずに「検索したキーワードの末尾へカーソル移動する」ための検索コマンドについて、ご紹介します。
[解答] /{検索キーワード}/{オフセット}
Vimの検索コマンド(/{検索キーワード})には、さらに次のようにオフセットを指定することで、検索後のカーソル位置を指定することが可能です。
/{検索キーワード}/{オフセット}<Enter> (下方向へ検索する) ?{検索キーワード}?{オフセット}<Enter> (上方向へ検索する)
オフセット | 実行内容 |
---|---|
e e0 | マッチした検索キーワードの末尾へ移動する (endの略) |
eN e+N | マッチした検索キーワードの末尾からN文字右へ移動する (endの略) |
e-N | マッチした検索キーワードの末尾からN文字左へ移動する (endの略) |
sN s+N bN b+N | マッチした検索キーワードの頭からN文字右へ移動する (start もしくは beginの略) |
s-N b-N | マッチした検索キーワードの頭からN文字左へ移動する (start もしくは beginの略) |
N +N | マッチした検索キーワードのN行下へ移動する |
-N | マッチした検索キーワードのN行上へ移動する |
Vimコマンド1. 検索キーワードの末尾に移動する
/{検索キーワード}/e<Enter>
Vimコマンド2. 検索したキーワードから2行下に移動する
/{検索キーワード}/2<Enter>
Vimコマンド3. 上方向の検索キーワードの3文字目へ移動する
?{検索キーワード}?s+2<Enter>
検索キーワードとオフセットの間も ? を指定する必要がある点に注意です。
このVimコマンドの補足情報
- 利用頻度
- 便利さ
- 覚え易さ
関連するVimヘルプ
Vim のヘルプでは下記のように解説されています。
/{pattern}/{offset}<CR> [count] 番目にマッチする {pattern} を前方検索し、
{offset} 行だけ上/下に移動します。linewise(行指向)(略)
?{pattern}?{offset}<CR> [count] 番目にマッチする {pattern} を後方検索して
{offset} 行だけ上/下に移動します。linewise(行指向)(略)
search-offset {offset}
上記の検索コマンドは指定されたパターンを検索します。”/” と “?” ではさらにオフ
セットを指定できます。オフセットには、行オフセットと文字オフセットの 2 種類あ
ります。オフセットを指定して、マッチした場所から相対的にカーソルを移動できます:
[num] [num]行下、1 桁目に移動
+[num] [num]行下、1 桁目に移動
-[num] [num]行上、1 桁目に移動
e[+num] [num]文字右に、マッチ部分の終わりの場所から移動
e[-num] [num]文字左に、マッチ部分の終わりの場所から移動
s[+num] [num]文字右に、マッチ部分の初めの場所(start)から移動
s[-num] [num]文字左に、マッチ部分の初めの場所(start)から移動
b[+num] [num] 上記 s[+num] と同じ (begin の b)
b[-num] [num] 上記 s[-num] と同じ (begin の b)
;{pattern} さらに検索する。//;を参照。‘-‘ か ‘+’ を指定して [num] を省略した場合は 1 が使われます。’e’ を使ってオフ
セットを指定した場合、検索は包括的になります (カーソルが移動するであろう位置の
文字まで含めて操作の対象になります)。例:
パターン カーソルの位置
/test/+1 “test” の 1 行下の 1 桁目
/test/e “test” の最後
/test/s+2 “test” の ‘s’
/test/b-3 “test” の 3 文字前これらのコマンドがオペレータに対して使われた場合、現在のカーソル位置から、検索
後のカーソル位置までが、操作の対象となります。ただし、行オフセットが指定された
場合は、2 つのカーソル位置の間の行全体が操作の対象となります。パターンを検索して置換する例:
pattern – Vim日本語ドキュメント
/foo<CR> “foo” を検索
c//e<CR> マッチした文字列を変更
bar<Esc> 置換する文字を入力
//<CR> 次のマッチへ移動
c//e<CR> マッチした文字列を変更
beep<Esc> 今度は別の文字で置換
…
こちらは、Vim上では下記のコマンドでヘルプを確認できます。
:help offset :help
ヘルプで検索するときは、通常は大文字小文字は識別されませんので、どちらでも構いません。
参考書籍
こちらの書籍が参考になります。
Vim/neovim関連の書籍で、もっとも評判が良くてバイブルと呼んでる人もいる一冊です。Vim/neovimのバージョンに依存しない沢山のTips形式で、その表題通りに「思考のスピードで編集」できるようになるノウハウが詰まっています。その高い評価は Amazon のレビューからも分かる通りです。Vimmer なら必ず一度は読んでおいて間違いありません。
こちらもVim関連の書籍で評価が高い書籍の一冊です。vim-jpで見かける上級Vimmer(Vimサポーターズ)の皆様による、Vimを実践で使ったノウハウからプラグイン関連の情報が詰まっています。日本の Vim界隈を知る上でも是非一読しておきたい一冊です。
Vim/neovim の設定ファイルやプラグインなど、Vim script に関するノウハウがいくつも詰まった一冊です。日本で Vim Script をここまで深く解説している唯一の書籍と言えます。Vim力を伸ばしたいと考えるなら、絶対に避けては通れない書籍でしょう。