Vim Motions That Actually Save Time
2026-05-14
Everyone tells you to learn Vim, but nobody tells you which motions are worth the muscle memory investment. After three years of daily use, here’s my honest ranking.
Tier 1: Non-Negotiable
These pay for themselves within a week:
| Motion | What it does | Why it matters |
|---|---|---|
ci" | Change inside quotes | Editing strings, attributes |
ci( / ci{ | Change inside brackets | Refactoring arguments |
% | Jump to matching bracket | Navigating code blocks |
* / # | Search word under cursor | Quick variable tracing |
. | Repeat last change | The single biggest time-saver |
Tier 2: Worth Practicing
These take a few weeks to internalize but compound:
f{char}/F{char}— find character inline. Faster thanh/lspamt{char}/T{char}— find until character. Perfect for deletinguntila commactrl+d/ctrl+u— half-page scroll. Keeps your eyes on the same spotzz— center current line. Eliminates mental reorientation
Tier 3: Nice to Have
Useful but not essential for daily work:
gt/gT— switch tabsctrl+o/ctrl+i— jump back/forward in the jumplist- Macros (
q{register}) — only worth it for repetitive tasks of 10+ iterations
What I Don’t Use
- Line numbers as targets (
:42) — too slow mentally - Visual block mode — I use multi-cursor in VS Code instead
/search with regex — I just use*andf90% of the time
The real productivity gain isn’t in any single motion — it’s in not thinking about navigation. When your fingers just move the cursor without conscious effort, that’s when the payoff arrives.