u/Sebasllr

▲ 25 r/vim+1 crossposts

VimKata: a browser game that punishes you for every unnecessary keystroke

Been using Vim for about a year and kept thinking "the only real practice is doing it live." So I built something.

VimKata each level shows you a code snippet and a target state. Transform it using Vim commands in the browser. You get scored.

The formula:

score = floor(1000 × efficiency × time_factor × undo_penalty)

efficiency   = min(1.0, optimal_keystrokes / your_keystrokes)
time_factor  = max(0.5, 1.0 - elapsed_seconds / (par_seconds × 2))
undo_penalty = max(0.8, 1.0 - undo_count × 0.05)

Keystroke count is the dominant factor. You can brute force your way to a correct answer with 40 keys and get 3/10 efficiency, or learn ciw and walk away with 960 points.

30 levels. Basics (x, dw, dd) through text objects (ci", di[, cit), visual block, dot repeat, and count prefixes. Wrong answers show a character-level diff. Correct answers reveal the optimal solution and a replay of every key you pressed.

Daily challenge + leaderboard for signed-in users. Anonymous play always works, no account needed.

Stack: CodeMirror + the vim plugin, SvelteKit, Go + Echo, DynamoDB, Lambda.

https://vimkata.academy

Disclaimer: I built this. If you have feedback, feel free to reach out. Always looking to improve it.

reddit.com
u/Sebasllr — 5 days ago