この記事では、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コマンドの補足情報
- 利用頻度[star rate=3]
- 便利さ[star rate=3]
- 覚え易さ[star rate=3]
関連する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
ヘルプで検索するときは、通常は大文字小文字は識別されませんので、どちらでも構いません。
参考書籍
こちらの書籍が参考になります。
[temp id=3]