Vim Commands Typing Drills
Vim commands aren't typed like text — they're composed like sentences from operators and motions. Drilling `ciw`, `di(`, and `:%s///g` patterns trains the grammar itself, which is exactly what separates Vim users from Vim survivors.
Learning the Operator-Motion Grammar
Vim's power comes from composition: `ciw` is change-inner-word, `di(` deletes inside parentheses, `yap` yanks a paragraph — operator plus text object, two or three keystrokes replacing whole mouse workflows. These sequences must be typed as atomic gestures; if you're spelling them letter by letter, you're thinking in keys instead of edits. Counts prefix everything (`d2w`), and find-motions (`f"`, `t;`) jump to characters inline.
Ex-mode brings a second language: substitution with ranges and flags (`:%s/var /const /gc`), global commands (`:g/pattern/d`), and their inverse (`:v//d`). Vim's regex dialect escapes groups as `\(\w\+\)` — backslash-heavy even by regex standards. Macros record keystroke sequences (`qa...q`), making your typing precision literally replayable. Every drill here is a real editing pattern you'll use within the week.
Key Drills for Vim Commands:
- Operator + motion = one thought: Type `ciw` and `da"` as single gestures. The grammar only pays off at gesture speed.
- Colon commands as sentences: Drill full `:%s/old/new/g` lines — range, pattern, replacement, flags — without pausing.
- Escaped groups: Vim regex needs `\(` and `\+`. Practice the backslash-prefixed forms until they don't feel wrong.
Sample Drill: Motions & Text Objects
Core movement and text-object edit commands.
ciw
di(
yap
vt;
d2w
f"ci"The Symbols That Slow You Down
The keystrokes below are where Vim Commands typing speed is won or lost. Key positions shown for QWERTY — the pattern transfers to any layout, just on different physical keys.
| Symbol | Used For | Keys | How to Drill It |
|---|---|---|---|
| ciw | Change inner word | c, i, w — all unshifted | Operator, motion, text-object as one atomic gesture. If you spell it letter by letter, you're thinking in keys. |
| : | Ex-mode entry | Shift+Semicolon | Every command-line mode entry. The colon should launch your hands into command posture automatically. |
| :%s///g | Substitution | : % s / / / g — shifted and unshifted mixed | Range, command, three slashes, flag — the full pattern typed as one memorized sentence. |
| "a | Register prefix | Quote as Shift+Apostrophe, then letter | `"ayiw` — registers prefix yanks and pastes. A quote reach most typists never drilled. |
| / | Search | Unshifted slash | Search-first editing: `/pattern` then Enter. The slash sits under your right pinky's home stretch. |
| % | Match jump / file range | Shift+5 | Jump between brackets — and in `:%s`, the whole-file range. One key, two daily jobs. |
Common Vim Commands Typing Mistakes
- ✗Typing motions as letters instead of gestures: `ciw` and `di(` must be single muscle-memory units.
- ✗Pausing between the three slashes in substitution — the rhythm of `:%s/old/new/g` should be unbroken.
- ✗Escaping Vim regex groups wrongly: `\(` and `\+` are backslash-prefixed here, unlike every other dialect.
What's a Good Vim Commands Typing Speed?
Vim fluency is gesture speed, not raw WPM: operators like `ciw`, `dat`, and `yyp` should land in under 300 milliseconds each. Sustained 30+ WPM on command drills means your editing vocabulary has become reflex.