↓ メインコンテンツへスキップ

思考のスピードで飛び回れるNvimプラグインhop.nvimの紹介

須原 大護
著者
須原 大護
大学院生。Metal3のメンテナー。
目次

はじめに
#

今回はneovim完全対応でeasymotionのように,画面を縦横無尽に飛び回れるプラグインを見つけたので紹介します.これがあれば開発効率上がること間違いなし!

使い方(単語全表示の場合)
#

1
#

現在カーソルが25行にあり画面一番下71行の後ろにあるmethodsという単語に飛びたいとします

スクリーンショット 2024-04-28 23.42.29.png

2
#

コマンドを呼び出すと,全ての単語にバインドが割り振られるので,今回はjjと入力します

スクリーンショット 2024-04-28 23.42.50.png

3
#

はい.もう移動できました!

スクリーンショット 2024-04-28 23.43.15.png

hop.nvim
#

https://github.com/hadronized/hop.nvim

自分はこの手のプラグインはeasymotionしか知らなかったので,ずっと使っていたのですがバッファが書き換わるのでLSPがいちいち反応してうるさいなと思っていました. hop.nvimは,この問題を解決するためにUIプラグインは既存のバッファに変更を加えるべきではないというコンセプトをもとに最新のneovimに実装したプラグインのようです.最高だ.

インストール方法
#

僕と同じ,lazy.nvimの場合は

return {
  "phaazon/hop.nvim",
  branch = "v2",
  config = function()
    require("hop").setup {
      multi_windows = true,
    }
  end,
  keys = {
    {mode = "", "<leader>s", "<cmd>HopChar<CR>", desc = "説明"},
  }
}

でインストールと設定ができます. multi_windowsはウィンドウをいくつか広げているときに,全てのウィンドウが検索対象にすることができる設定です. 他にも色々設定項目ありましたが,基本的にはデフォルトから変えることはあまりなさそうでした.

機能紹介
#

個人的に特に便利だと思うコマンドを3つ紹介します.

  • :HopWord バッファ内の全ての単語がある場所に移動できます

  • :HopChar2 2文字を指定して,検索をかけて移動することができます

  • :HopPattern vim標準の/と同じように検索をかけることができます.標準では1つずつしか移動できないのに対して,こっちはヒットした対象から任意の箇所に一瞬で飛べちゃう.

この辺りをキーバインディングに設定しておけばかなり便利だと思います.


Qiitaで元の記事を読む