Releases: S-Sigdel/vimhjkl
v0.4.1
Content quality pass + a new in-drill option.
- Every challenge vetted, challenge by challenge — buffers scale-matched to the technique (
:sorton 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
oon the result screen to switch the current skill off so it stops coming up (re-enable in Settings ▸ Lessons).
v0.4.0
- 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
vimhjkl 0.2.0
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(oryay -S vimhjkl) - From source:
git clone https://github.com/S-Sigdel/vimhjkl && cd vimhjkl && uv sync