〜 aravind

Vim: It's a Grammar, Not a Cheat Sheet

Back when I put together a Vim presentation — slides and all — I had this optimistic belief that I could explain Vim in a few bullet points and a cheat sheet image.

I was wrong. Not about the bullet points. Those are fine. About the belief that bullet points are enough.

Vim is not a text editor you learn. It's a text editor you survive, and then — if you make it out the other side — you become insufferable about.

That talk wasn't the beginning. It was the proof that I was already too far in. The migration had already happened — the slides were just me trying to explain it to other people.


The presentation

The original session covered the basics — modes, motions, commands, macros. The kind of thing you put together for a team and hope at least two people in the room actually try it afterward.

The honest goal wasn't to convert anyone. It was to show that Vim has a grammar. Not a list of shortcuts to memorize, but an actual composable language: verbs, objects, counts. Once that clicks, the commands stop being arbitrary.

d2w — delete 2 words.

ci" — change inside quotes.

yi) — yank inside parentheses.

You're not memorizing. You're reading.

That's the part I wish I'd led with.


Why I can't go back

The thing that keeps me in Vim isn't any single feature. It's the composability. Every command works with every other command. Mix them with text objects and counts and you get an editing vocabulary that's genuinely expressive. In a regular editor, a precise edit might take click-drag-hope-delete. In Vim, one motion.

The other thing: my hands don't leave the home row. This sounds like a minor ergonomic point. It isn't. After years of reaching for the mouse or the arrow keys, staying in one place and having the whole file at your fingertips changes how you think about editing. You stop interrupting yourself.

Once that grammar is in your fingers, you start looking for it everywhere.

Next: how the migration actually happened — and why you don't have to go cold turkey.