Blog

NeoVimプラグインhop.nvimを使ってみた

ニフティのVimmerの一人、会員システムグループの上原です。(Neo)Vimは高速に編集することのできる魅力的なエディタですが、プラグインを加えることで、さらに便利にすることができます。今回は先日導入して便利だと思った、hop.nvimというプラグインを紹介します。

hop.nvimとは?

hop.nvimはより楽にカーソル移動できるようにしてくれるプラグインです。Vimやバージョンが0.5未満のNeoVimに対応していない点には注意してください。 (Neo)Vimではhjklをはじめ、wや%などのさまざまなコマンドを使ってカーソル移動しますが、
加えて、hop.nvimでは移動先の候補にラベルをつけ、ユーザーがそのラベルの中から移動したい場所を選ぶことで、楽にカーソルを動かすことができます。

実際に使ってみる

特定の文字が出現する箇所にラベルをつけて移動する

rが出現する部分にラベルをつけられて、ユーザーがラベルの名前であるhを入力すると、そのラベルに対応する11行目のrにカーソルが移動します。
rが出現する箇所に簡単に移動する様子

行単位でラベルをつけて移動する

それぞれの行にラベルをつけられて、ユーザーがラベルの名前であるqを入力すると、そのラベルに対応する11行目にカーソルが移動します。
行にラベルをつけ、カーソル移動する様子
行にラベルをつけ、好きな行にカーソル移動する様子

単語単位でラベルをつけて移動する

単語に対してラベルをつけられて、ユーザーがラベルの名前であるfsを入力すると、そのラベルに対応する11行目のrにカーソルが移動します。
単語にラベルをつけ、好きな単語に移動する様子

インストール方法

プラグインをインストールするには、プラグインマネージャを利用するのが便利です。プラグインマネージャはいくつかありますが、ここではdeinを使ったインストール方法を紹介します。 hop.nvimをインストールするため、dein.tomlに以下を追記しましょう。 hook_addにはプラグインに必要な設定を記述します。hop.nvimはlua製のプラグインのため、luaを呼び出して初期処理を走らせる必要があります。最近のNeoVim界隈ではinit.luaにVimの設定を入れるのが流行していますが、deinでlua << EOF ~~~ EOFのように中に記述すれば、init.luaを使わずともluaを呼び出すことができます。 デフォルトだとキーマップの設定は入っていないので、手動で行います。
以下はLeaderキー(デフォルトだとバックスラッシュ)を2回連続で押すとhop.nvimを呼び出すように設定し、nnoremapでそれぞれの機能にアサインしています。 以下に示すコマンドによってラベルの付け方を変えることができます。詳しくは:help hopでhop.nvimのヘルプを見てください。

終わりに

カーソル移動を楽にできるhop.nvimをご紹介しました。NeoVim以外にも最近のエディタには拡張機能がたくさんあるので、ぜひ皆さんもお気に入りの拡張機能を見つけてみてください。

We are hiring!

ニフティでは、さまざまなプロダクトへ挑戦するエンジニアを絶賛募集中です!
ご興味のある方は以下の採用サイトよりお気軽にご連絡ください! Tech TalkやMeetUpも開催しております!
こちらもお気軽にご応募ください!