💨

【Vim】nNコマンドの挙動を自然にする

2021/03/29に公開

Vimの検索には、マッチを前方から行う/と後方から行う?があります。
マッチした対象の移動にはn``Nを利用しますが、/?で移動の方向が変わり直感的でないことがあります。
この挙動を変更したい場合以下のスクリプトを.vimrcに書くと良いでしょう。

nnoremap <expr> n 'Nn'[v:searchforward]
nnoremap <expr> N 'nN'[v:searchforward]

上のスクリプトは検索の方向によっての値の変わるv:searchforwardを利用してn``Nのどちらのキーを展開するか決定します。


元となった投稿: Vim-jp Slack @yutkat

@yutkat

nnoremap <expr> n  'Nn'[v:searchforward]
nnoremap <expr> N  'nN'[v:searchforward]

Discussion