Skip to content

Releases: S-Sigdel/vimhjkl

v0.4.1

07 Jun 03:04

Choose a tag to compare

Content quality pass + a new in-drill option.

  • Every challenge vetted, challenge by challenge — buffers scale-matched to the technique (:sort on 10-line lists, :g/block-range on scattered lines, marks on real multi-line code), solutions re-derived and verified through real vim.
  • Dropped the junk — toy/abstract buffers, whimsical prose, contrived solutions, near-duplicates, and an off-skill example. 549 → 222 challenges, ~4 per skill, all 61 lessons kept.
  • Tighter in-vim text — every why/hint trimmed to fit the goal pane.
  • New: turn a lesson off mid-drill — press o on the result screen to switch the current skill off so it stops coming up (re-enable in Settings ▸ Lessons).

v0.4.0

06 Jun 20:49

Choose a tag to compare

  • yank challenges graded on the unnamed register, not the buffer
  • key remaps for any key in any mode (escape aliases folded in); lessons whose taught key you remapped are warned and hidden
  • free-form, endless, no-repeat blind-all sweep; Blind names the expected technique
  • Grind lets you pick the skill (menu, or --reps N --skill ID)
  • spaced repetition graded by efficiency — fast solves promote and rest longer, slow-but-correct holds, a miss demotes (one slip at the top forgiven)
  • fix the keystroke count when Enter sends (Ctrl-J) instead of

v0.3.0

03 Jun 05:29

Choose a tag to compare

Personalisation layer (lesson toggles, escape aliases, blind sub-choice, motion target highlight, most-missed panel), vim-style menu/lessons/pager navigation, the goal pane on motion drills, and a content pass that re-motivates weak example buffers.

vimhjkl 0.2.0

02 Jun 08:30

Choose a tag to compare

vimhjkl 0.2.0

The goal now sits beside the buffer

While you drill, the target buffer shows in a read-only pane to the right of the
edit window
— so you practise the move instead of trying to remember what the
goal looked like. Every quit form (:wq, :x, ZZ, :q!, ZQ) cleanly tears
down both windows, and the pane is injected at startup so it never affects your
keystroke counts. A minimum terminal-size check warns first (with a one-session
override) so a drill never launches into a cramped split.

Lessons rewritten so the technique is always the point

A sweep over the whole curriculum reshaped weak examples so each one genuinely
needs its technique — no more trivial buffers where a simpler move would beat the
lesson, and no one/two/three / foo filler text. Marks-as-range, the :g
globals, :sort, macros, the dot command, counts, and the substitution drills all
got richer, concrete buffers. Weak and off-skill generated instances were pruned.
All 563 challenges across 61 lessons are verified against real vim at build
time.

Grading enforces the technique

Command drills (:s, :g, :normal, ranges) now require you to actually use an
ex command — reaching the goal by hand-editing is no longer accepted, even when the
final buffer matches.

Install

  • Arch (AUR): paru -S vimhjkl (or yay -S vimhjkl)
  • From source: git clone https://github.com/S-Sigdel/vimhjkl && cd vimhjkl && uv sync

v0.1.1

02 Jun 00:57

Choose a tag to compare

Fix: restore the terminal on SIGTERM/SIGHUP (and on Ctrl-Z suspend within the menu/pager) so a killed or stopped session can no longer leave the shell in raw mode (sudo echoing until stty sane).

v0.1.0

01 Jun 22:38

Choose a tag to compare

first release