💨
【Vim】nNコマンドの挙動を自然にする
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