Learn by doing
Master Vim, one motion at a time
A real editor, real keybindings, instant feedback. Pick a lesson and build the muscle memory that makes editing feel effortless. 30 lessons, 194 exercises, free and no signup.
- Lesson 1: Survival Basics — Modal editing, hjkl movement, insert and delete. (h j k l i)
- Lesson 2: Horizontal Motions — Word jumps, line starts, and line ends. (w b e 0 $)
- Lesson 3: Operators: Delete & Change — Delete and change with the operator grammar. (d c dw dd)
- Lesson 4: Vertical Motions — Leap between lines and paragraphs. (gg G { })
- Lesson 5: Counts & Repeat — Multiply motions and repeat your last change. (3w 2dd .)
- Lesson 6: Visual Mode — Select first, then operate. (v V vaw)
- Lesson 7: Yank & Paste — Copy and paste without leaving the home row. (y yy p P)
- Lesson 8: Text Objects — Operate on words, quotes, and brackets from anywhere. (iw i" i()
- Lesson 9: Search & Replace — Find anything, replace everything. (/ n * :%s)
- Lesson 10: Insert & Append — Enter Insert mode exactly where you need it. (i a I A o)
- Lesson 11: Replace, Case & Join — Quick edits without leaving Normal mode. (r ~ J)
- Lesson 12: Indentation — Shift lines and blocks into place. (>> << >)
- Lesson 13: Find & Till — Snipe characters on the current line. (f F t ;)
- Lesson 14: Operators with Targets — Aim operators at bigger targets. (d$ dG dtx)
- Lesson 15: Macros — Record once, replay everywhere. (q @ @@)
- Lesson 16: Big-WORD Motions — Jump over punctuation with WORD motions. (W B E)
- Lesson 17: Changing Case — Uppercase, lowercase, and toggle without retyping. (gU gu g~)
- Lesson 18: Registers — Named clipboards for yanks and deletes. ("a y p)
- Lesson 19: Shortcut Edits — One-key delete, change, and substitute. (D C s S)
- Lesson 20: Matching Pairs — Bounce between matching brackets. (% d%)
- Lesson 21: Marks — Bookmark spots and jump back. (ma `a 'a)
- Lesson 22: Undo & Redo — Rewind mistakes, replay fixes. (u Ctrl-r)
- Lesson 23: Paragraph Objects — Grab whole blocks at once. (ip ap dap)
- Lesson 24: Tag Objects — Edit inside HTML tags. (it at cit)
- Lesson 25: Replace Mode — Overwrite text in place. (R)
- Lesson 26: Increment & Decrement — Do math on numbers without retyping them. (Ctrl-a Ctrl-x)
- Lesson 27: First Non-Blank — Land where the code starts, not column 0. (^ + -)
- Lesson 28: Backward Word Ends — Jump back to the end of the previous word. (ge gE)
- Lesson 29: Brackets & Blocks — Inner and around objects for every bracket pair. (i{ a[ i<)
- Lesson 30: Swap & Duplicate — xp, ddp, yyp — three tiny idioms you'll use forever. (xp ddp yyp)
Your progress · Source on GitHub