← blog

Why your Vim cheat sheet isn't working

2026-07-173 min readIntermediate
#learning#fundamentals

You've got one. Maybe pinned above the desk, maybe a browser tab you've kept open for eight months. It has about 120 commands on it in a nice grid.

And you still can't edit at speed. That isn't a discipline problem. The cheat sheet is the problem.

A cheat sheet is a list of answers

Look at what's actually on it: dw delete word. d$ delete to end of line. cw change word. c$ change to end of line. yw yank word. y$ yank to end of line.

Six rows. Six things to memorize, as far as the sheet is concerned.

But those six rows are three verbs and two nouns. d c y, and w $. Six facts collapse into five, and the five generate the six — plus every combination the sheet didn't bother to print.

The sheet took a grammar and flattened it into vocabulary. Then it handed you the vocabulary and hid the grammar. That's why it's 120 rows long, and why row 74 never sticks: it isn't a fact worth remembering, it's a sentence that should have been obvious.

Recognition isn't recall

The second problem is quieter and worse.

Reading the sheet feels like learning. Your eyes land on ciw, you think "right, change inner word, got it," and you close the tab satisfied. That feeling is recognition — you know it when you see it.

Editing needs recall, and recall is a different capability. Under a real deadline, with a real bug, nobody's brain says "consult the grid." Your hands either know it or they don't.

The gap between the two is enormous, and looking at a sheet more often does not close it. Recognition is built by reading. Recall is built by retrieving — by trying to produce the command, failing, and trying again. That's why the sheet can feel productive for months while your actual editing doesn't move at all.

What the sheet can never show you

Watch what's missing from every cheat sheet you've seen.

It lists . as "repeat last change" and moves on. It cannot tell you that dot is useless unless your edits are atomic, that x five times destroys it and ciw makes it sing, or that n and . together become a two-key loop that replaces search-and-replace half the time.

It lists f as "find character on line". It can't tell you that f is really about targeting — that dt, reads as "delete till the comma" and that this is how you actually cut arguments out of function calls.

The sheet has the words. It doesn't have the sentences, and the sentences are the whole point.

What actually works

Three things, in order.

Learn the grammar, not the grid. One verb, one noun, and notice that they combine. Then add a noun. d plus w plus $ plus i( gives you six commands from four facts, and you'll never look any of them up.

Practise retrieval, not reading. Put yourself in a position where you have to produce the command from nothing and get told immediately whether you were right. That loop — attempt, feedback, attempt — is the only thing that converts recognition into recall. Reading isn't it.

Add one command at a time. Not twelve. The sheet gives you 120 at once, which is why none of them land. One command, used deliberately for two days until your hands do it without you, is worth more than the whole grid.

Keep the sheet, demote it

None of this means throw it away. A reference is genuinely useful for the thing a reference is for: looking up the command you already half-know but can't quite produce, once, and then never needing it again.

What it can't be is your method. Reference is for the long tail. The core — the verbs, the nouns, the dot — has to live in your hands, and hands don't learn by reading.

Try the opposite approach: one command per kata, in your browser, where you type it or you don't move on. It's the same content as the sheet, delivered the way hands actually learn.