hop.nvimとは?
hop.nvimはより楽にカーソル移動できるようにしてくれるプラグインです。Vimやバージョンが0.5未満のNeoVimに対応していない点には注意してください。 (Neo)Vimではhjklをはじめ、wや%などのさまざまなコマンドを使ってカーソル移動しますが、加えて、hop.nvimでは移動先の候補にラベルをつけ、ユーザーがそのラベルの中から移動したい場所を選ぶことで、楽にカーソルを動かすことができます。
実際に使ってみる
特定の文字が出現する箇所にラベルをつけて移動する
rが出現する部分にラベルをつけられて、ユーザーがラベルの名前であるhを入力すると、そのラベルに対応する11行目のrにカーソルが移動します。
行単位でラベルをつけて移動する
それぞれの行にラベルをつけられて、ユーザーがラベルの名前であるqを入力すると、そのラベルに対応する11行目にカーソルが移動します。
単語単位でラベルをつけて移動する
単語に対してラベルをつけられて、ユーザーがラベルの名前であるfsを入力すると、そのラベルに対応する11行目のrにカーソルが移動します。
インストール方法
プラグインをインストールするには、プラグインマネージャを利用するのが便利です。プラグインマネージャはいくつかありますが、ここではdeinを使ったインストール方法を紹介します。 hop.nvimをインストールするため、dein.tomlに以下を追記しましょう。
1 2 3 4 5 6 7 8 9 10 11 12 |
[[plugins]] repo = 'phaazon/hop.nvim' hook_add = ''' lua << EOF require'hop'.setup() EOF nmap <Leader><Leader> [hop] xmap <Leader><Leader> [hop] nnoremap <silent> [hop]w :HopWord<CR> nnoremap <silent> [hop]l :HopLine<CR> nnoremap <silent> [hop]f :HopChar1<CR> ''' |
1 2 3 |
lua << EOF require'hop'.setup() EOF |
以下はLeaderキー(デフォルトだとバックスラッシュ)を2回連続で押すとhop.nvimを呼び出すように設定し、nnoremapでそれぞれの機能にアサインしています。
1 2 3 4 |
nmap <Leader><Leader> [hop] nnoremap <silent> [hop]w :HopWord<CR> nnoremap <silent> [hop]l :HopLine<CR> nnoremap <silent> [hop]f :HopChar1<CR> |
1 2 3 4 5 6 7 |
:HopWord: 単語にラベルをつける :HopPattern: パターンと一致する部分にラベルをつける(/と同じ) :HopChar1: 単一の文字を検索し、その部分にラベルをつける :HopChar2: 2文字を検索し、その部分にラベルをつける :HopLine: 行にラベルをつける :HopLineStart: 行の最初の非空白文字にラベルをつける |
終わりに
カーソル移動を楽にできるhop.nvimをご紹介しました。NeoVim以外にも最近のエディタには拡張機能がたくさんあるので、ぜひ皆さんもお気に入りの拡張機能を見つけてみてください。We are hiring!
ニフティでは、さまざまなプロダクトへ挑戦するエンジニアを絶賛募集中です!ご興味のある方は以下の採用サイトよりお気軽にご連絡ください! Tech TalkやMeetUpも開催しております!
こちらもお気軽にご応募ください!