explaingit

s-sigdel/vimhjkl

Analysis updated 2026-05-18

388PythonAudience · developerComplexity · 2/5Setup · easy

TLDR

Vimhjkl is a Vim practice tool with 222 keystroke-graded drills and spaced repetition that teach real editing techniques inside an actual Vim session.

Mindmap

mindmap
  root((vimhjkl))
    What it does
      Real Vim drills
      Keystroke grading
      Spaced repetition
      Multiple practice modes
    Tech stack
      Python
      Vim
      Neovim
    Use cases
      Learn text objects
      Master macros
      Track skill progress
    Audience
      Vim beginners
      Developers
      Keyboard efficiency learners

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Practice advanced Vim techniques like text objects, macros, and registers through graded drills.

USE CASE 2

Track skill mastery over time using spaced repetition that resurfaces weak areas sooner.

USE CASE 3

Review Vim commands as flashcards without opening an editor using no-editor review mode.

What is it built with?

PythonVimNeovim

How does it compare?

s-sigdel/vimhjklfullive-ai/animahidream-ai/hidream-o1-image
Stars388389385
LanguagePythonPythonPython
Setup difficultyeasymoderatemoderate
Complexity2/53/53/5
Audiencedevelopervibe coderdeveloper

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · easy Time to first run · 5min

Requires Python and a working Vim or Neovim installation, installable via Homebrew or from source.

No license information is stated in the README.

In plain English

Vimhjkl is a practice tool for learning Vim, the text editor, through hands-on drills run inside a real Vim session rather than a simulated environment. It covers 61 lessons and 222 challenges focusing on techniques that beginners often do not encounter in the standard Vim tutorial: things like text objects, macros, operator-motion combinations, registers, and command-line operations. The goal shown during a drill sits in a pane next to your actual editing buffer, so you are always practicing a real move. When you complete a challenge, the tool grades your keystrokes on both correctness and efficiency. Getting the right result is not enough on its own: your keystroke count is compared against a verified minimum, and using more than twice that minimum counts as inefficient. This grading discourages brute-force approaches and pushes you toward the idiomatic way of doing each task. Command-based drills that use Vim's colon commands require you to type an actual command rather than editing the file by hand. The tool tracks your progress using spaced repetition, a learning method where material you struggle with comes back sooner than material you know well. Each skill has a box level from 1 to 5, and a passing attempt moves it up while a wrong answer knocks it down. A skill is fully grooved after 25 clean, efficient repetitions, after which it appears only occasionally for maintenance. Harder material unlocks only once the easier tier below it is sufficiently mastered, so the curriculum expands gradually. There are several modes depending on what kind of practice you want. Learn mode shows you the technique before you attempt it. Blind mode shows only the before and after states and expects you to recall the method yourself. Practice mode queues up the skills you have been missing most. Grind mode lets you repeat a single skill many times in a row. A no-editor review mode works as plain flashcards without opening Vim. Installation is available through Homebrew on macOS and Linux, through the Arch Linux package manager, or directly from source. The only dependencies are Python and a working Vim or Neovim installation.

Copy-paste prompts

Prompt 1
Explain how vimhjkl's efficiency grading compares my keystroke count to a verified minimum for a challenge.
Prompt 2
Walk me through how the spaced repetition box levels work as I pass or fail a drill in vimhjkl.
Prompt 3
What is the difference between Learn mode, Blind mode, and Grind mode in this tool?
Prompt 4
How do I install vimhjkl on macOS using Homebrew and start my first lesson?

Frequently asked questions

What is vimhjkl?

Vimhjkl is a Vim practice tool with 222 keystroke-graded drills and spaced repetition that teach real editing techniques inside an actual Vim session.

What language is vimhjkl written in?

Mainly Python. The stack also includes Python, Vim, Neovim.

What license does vimhjkl use?

No license information is stated in the README.

How hard is vimhjkl to set up?

Setup difficulty is rated easy, with roughly 5min to a first successful run.

Who is vimhjkl for?

Mainly developer.

Open on GitHub → Explain another repo

This repo across BitVibe Labs

Verify against the repo before relying on details.