本記事はVimアドベントカレンダー2022 その3の21日目の記事です。
hop.nvimはeasymotion的な検索対象をラベル付けして、入力されたラベルの場所に飛ぶ系のプラグインです。
私はこれまでf
モーションの拡張としてしか使ってませんでしたが、/
の代替として文字列検索に一致した箇所へホップする機能もあると気付きました。
たとえばこの記事の原稿に対してnvim
で検索実行している様子が以下のスクリーンショット。次にa
を入力すれば、画像の1行目で目立つa
に飛びます。
で、これを使えば、直近で使用した検索パターンを使ってホップできます。検索にマッチするパターンが複数あって、画面内の該当箇所まで何回n/N
すればいいか分からないなんて時に便利ですね。
コマンドでやるならこんな感じ。
:lua require('hop').hint_patterns({}, vim.api.nvim_exec('echo @/', true))
私は以下のようにnormal
モードのgn
にマッピングして使ってみることにしました。
vim.keymap.set('n', 'gn', function() require('hop').hint_patterns({}, vim.api.nvim_exec('echo @/', true)) end)
ENJOY!