Featured image of post Neovim hop.nvimで爆速移動

Neovim hop.nvimで爆速移動

この記事ではNeovimのhop.nvimプラグインの使用方法について詳しく説明します

概要

この記事では、Neovimのhop.nvimプラグインについて説明します。hop.nvimはカーソル移動のプラグインで、できるだけ少ないキー操作で任意の場所にジャンプできるようになります。以下では、その設定方法と具体的な使用例について詳しく説明します。

設定

自分の設定例です。プラグイン管理がLazyの場合は、以下のように設定できます。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
return {
	"smoka7/hop.nvim",
	event = "BufRead",
	version = "*",
	opts = {
		multi_windows = true,
	},
	keys = {
		{ "<leader>w", "<cmd>HopWord<CR>", mode = "n", desc = "Hop Word" },
		{ "<leader>l", "<cmd>HopLine<CR>", mode = "n", desc = "Hop Line" },
		{ "<leader>c", "<cmp>HopChar1<CR>", mode = "n", desc = "Hop Char" },
		{ "<leader>p", "<cmd>HopPattern<CR>", mode = "n", desc = "Hop Pattern" },
		{ "f", "<cmd>HopChar1CurrentLineAC<CR>", mode = { "n", "v", "o" }, desc = "Hop Char in Line (After Cursor)" },
		{ "F", "<cmd>HopChar1CurrentLineBC<CR>", mode = { "n", "v", "o" }, desc = "Hop Char in Line (Before Cursor)" },
		{
			"t",
			"<cmd>lua require'hop'.hint_char1({ direction = require'hop.hint'.HintDirection.AFTER_CURSOR, current_line_only = true, hint_offset = -1 })<CR>",
			mode = { "n", "v", "o" },
			desc = "Hop Before Char in Line (After Cursor)",
		},
		{
			"T",
			"<cmd>lua require'hop'.hint_char1({ direction = require'hop.hint'.HintDirection.BEFORE_CURSOR, current_line_only = true, hint_offset = 1 })<CR>",
			mode = { "n", "v", "o" },
			desc = "Hop After Char in Line (Before Cursor)",
		},
	},
}

使い方

HopWord: 画面上の特定の単語の先頭にジャンプしたい時

8行目のkeysの上にカーソルがあります。そこから7行上のreturnの先頭にカーソルをジャンプしたい時の例です。 コマンド的には、<Space>w, yでジャンプしています。

ステップで説明すると以下です。

  1. returnより11行下のmodeに目線を移す。
  2. <Space>w(HopWordコマンド実行キーマップ)をタイプ
  3. 目線にあるハイライトされた文字ngをタイプして移動完了

HopWordの使用例

HopLine: 特定の行に直接ジャンプしたい時

現在、カーソルが8行目のkeysの上にあります。そこから7行上のreturnの行にカーソルをジャンプしたい時の例です。 コマンド的には、<Space>l, yでジャンプしています。

ステップで説明すると以下です。

  1. keysより7行下のreturnに目線を移す。
  2. <Space>l(HopLineコマンド実行キーマップ)をタイプ
  3. 目線にあるハイライトされた文字yをタイプして移動完了

HopLineの使用例

HopChar1: 画面上の特定の文字にジャンプしたい時

現在、カーソルが1行目のreturnの上にあります。そこから18行下のHop Before Char ...の行の先頭にジャンプしたい時の例です。 コマンド的には、<Space>c, H, <Enter>, rでジャンプしています。

HopChar1の使用例

HopPattern: 画面上の特定のパターンにジャンプしたい時

現在、カーソルが1行目のreturnの上にあります。そこから16行下のHintDirectionDの位置にジャンプしたときの例です。

ステップで説明すると以下です。

  1. returnより16行下のHintDirectionDの位置に目線を移す。
  2. <Space>p(HopPatternコマンド実行キーマップ)をタイプ
  3. ジャンプしたいパターンdireactionをタイプ
  4. 目線にあるハイライトされた文字sをタイプして移動完了

HopPatternの使用例

まとめ

この記事では、Neovimのhop.nvimプラグインの設定方法と使用例について説明しました。hop.nvimは、少ないキー操作で任意の場所にジャンプすることを可能にする強力なカーソル移動ツールです。

HopWord, HopLine, HopChar1, そして HopPatternといった主要なコマンドを使用することで、効率的にコードをナビゲートできます。これらのコマンドは、特定の単語、行、文字、またはパターンにジャンプするためのものです。

さらに、hop.nvimにはこれら以外にも多くの機能と設定オプションがあります。例えば、異なるウィンドウ間でのジャンプや、カーソル位置に基づいたジャンプなどが可能です。詳細は公式GitHubリポジトリを参照してください。

このプラグインを活用することで、あなたのコーディング体験はさらに向上するでしょう。

Licensed under CC BY-NC-SA 4.0
comments powered by Disqus
Hugo で構築されています。
テーマ StackJimmy によって設計されています。