跳至内容

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:

MotionWhat it doesWhy it matters
ci"Change inside quotesEditing strings, attributes
ci( / ci{Change inside bracketsRefactoring arguments
%Jump to matching bracketNavigating code blocks
* / #Search word under cursorQuick variable tracing
.Repeat last changeThe 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 than h/l spam
  • t{char} / T{char} — find until character. Perfect for deleting until a comma
  • ctrl+d / ctrl+u — half-page scroll. Keeps your eyes on the same spot
  • zz — center current line. Eliminates mental reorientation

Tier 3: Nice to Have

Useful but not essential for daily work:

  • gt / gT — switch tabs
  • ctrl+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 * and f 90% 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.