Curriculum
Vim, from first motion to fluent composition.
Fifty-one focused lessons. Every concept has a live demo, a completion challenge, and a timed practice run. The sequence is recommended, never locked.
Basic Vim
Modes, home-row movement, insertion, and precise single-character edits.
Introduction to Modes
Understand why the same key can navigate or insert text.
Basic Movement
Move one character or line with h, j, k, and l.
Moving by Words
Jump between word starts and ends with w, e, and b.
Insert Mode
Insert before or after the cursor, then return to Normal mode.
Insert at Line Ends
Start inserting at the first non-blank character or line end.
Opening New Lines
Create an indented line above or below with O and o.
Making Small Edits
Delete, substitute, or replace one character efficiently.
Essential Motions
Move by larger words, line boundaries, and characters you can see.
Moving by WORDs
Cross whitespace-delimited chunks with W, E, and B.
Moving to Line Ends
Reach column zero, indentation, or the final character directly.
Find Character
Jump onto a visible character in the current line.
Till Character
Land beside a visible character with t and T.
Basic Operators
Combine verbs and motions to delete, change, copy, and paste text.
Introduction to Operators
Compose an action with a motion to describe an edit.
Delete Words
Combine d with word and WORD motions.
Change Words
Delete a word range and enter Insert mode with c.
Delete Lines
Remove complete lines or everything to line end.
Delete Multiple Lines
Use a count with a vertical motion to remove a block.
Copy and Paste Lines
Yank lines and place them above or below the cursor.
Vertical Navigation
Cross files and paragraphs without repeating a key by hand.
Relative Line Jumps
Prefix j or k with a count to travel an exact distance.
Absolute Line Jumps
Jump to the top, bottom, or a numbered line.
Paragraph Jumps
Cross blank-line-separated blocks with braces.
Window Scrolls
Move half a viewport with Ctrl-d and Ctrl-u.
Search
Jump to text directly, repeat searches, and search from the word under the cursor.
Text Objects · Brackets
Operate inside or around paired delimiters, even when nested.
Introduction to Text Objects
Address semantic regions from anywhere inside them.
Delete Inside Brackets
Clear bracket contents while preserving the pair.
Delete Around Brackets
Remove a paired delimiter and everything inside it.
Change Inside Brackets
Replace bracket contents without retyping delimiters.
Change Around Brackets
Replace an entire bracketed expression.
Brackets Review
Mix delete/change with inner/around bracket objects.
Text Objects · Quotes
Treat quoted strings as one addressable piece of text.
Delete Inside Quotes
Clear string contents while preserving quote marks.
Delete Around Quotes
Remove a quoted value including its delimiters.
Change Inside Quotes
Replace a string value while keeping its quote style.
Change Around Quotes
Replace a complete quoted expression.
Quotes Review
Choose inner or around operations across quote styles.
Text Objects · Words
Edit words from anywhere inside them without first finding an edge.
Delete Inside Word
Delete a word from any position inside it.
Delete Around Word
Delete a word together with useful adjacent spacing.
Change Inside Word
Replace a whole word without reaching its beginning.
Words Review
Mix motion-based and object-based word edits.
Text Objects · Paragraphs
Apply edits to blocks separated by blank lines.
Delete Inside Paragraph
Remove the current blank-line-delimited block.
Delete Around Paragraph
Remove a paragraph and its separating blank line.
Change Inside Paragraph
Replace a complete paragraph in one operation.
Paragraphs Review
Move through and operate on paragraph boundaries.
Text Objects · Review
Choose the right object and operator without being prompted.
Visual Mode
Select text explicitly, adjust either edge, and apply operators.
Introduction to Visual Mode
Select text explicitly with v and leave with Escape.
Visual Mode Operators
Delete, change, or yank the selected characters.
Switch Visual Selection Ends
Move the opposite edge of a selection with o.
Visual Line Mode
Select complete lines with uppercase V.
Switch Visual Line Ends
Use o to adjust the other edge of a linewise selection.
Visual Line Operators
Delete, change, or yank complete selected lines.