Analysis updated 2026-05-18
Jump to any visible line in a large file in a handful of keystrokes.
Navigate long files without scrolling or typing exact line numbers.
Combine line navigation with delete or yank operations in one motion.
| ergodice/hamal.nvim | karpathy/optim | gregorias/nvim-surround-wk | |
|---|---|---|---|
| Stars | 43 | 42 | 35 |
| Language | Lua | Lua | Lua |
| Last pushed | — | 2021-08-19 | — |
| Maintenance | — | Dormant | — |
| Setup difficulty | easy | moderate | easy |
| Complexity | 2/5 | 3/5 | 1/5 |
| Audience | developer | researcher | developer |
Figures from each repo's GitHub metadata at analysis time.
Drop-in Neovim plugin with no external dependencies.
hamal.nvim is a plugin for Neovim, the popular text editor, that helps you jump to any visible line on the screen quickly. Instead of scrolling line by line or typing an exact line number, it repeatedly splits the current window into sections and lets you pick which section holds the line you want, narrowing the choice down a few keystrokes at a time until you land exactly where you meant to go. By default the window is split into three parts each time, which means that on a 100 line screen you can reach any line in at most five keypresses. The plugin lets you change how many parts each split makes: fewer parts means slightly more keypresses but simpler choices, while more parts gets you there faster but asks you to tell apart more regions at once. Once installed, you press a keymap to enter Hamal mode, which splits the visible window into labeled sections. Pressing the key for a section focuses that region and splits it again, and you keep narrowing down until you press a key to jump straight to the top, middle, or bottom line of the current region. You can also back out to the previous split, or select the current split as a whole. This mode also works while an editing command is pending, so it can be used to jump to a line and immediately delete or copy text up to that point, in the same way other motions work in Vim style editors. The plugin is configurable: you can change the number of divisions, remap or disable any of its keys, and customize the colors used to highlight each section and the borders between them. It has no external dependencies and is described as lightweight.
A Neovim plugin that lets you jump to any visible line in a handful of keystrokes by repeatedly splitting the window into chosen sections.
Mainly Lua. The stack also includes Lua, Neovim.
Setup difficulty is rated easy, with roughly 5min to a first successful run.
Mainly developer.
This repo across BitVibe Labs
Verify against the repo before relying on details.