• ↑↓ to navigate
  • ↵ to open
  • ⟶ to select
  • ⌘ ⌥ ↵ to open in a panel
  • ←→ to navigate
  • esc to dismiss
⌘ '
keyboard shortcuts

The Problem

Repeating the same operation multiple times is inefficient. Manual replication wastes time and introduces inconsistency.

Core Idea

Two repetition mechanisms: the dot command (.) repeats the last change; numeric prefixes repeat commands N times.

How It Works

Dot Command (.)

  • Repeats the last Simple change
  • Examples:
    • 100idesu [ESC] writes “desu” 100 times
    • . repeats that 100 “desu”
    • 3. repeats 3 times (300 total, not 300!)
  • A Simple change = one command that makes one change

Numeric Prefix (N<command>)

  • Precedes any command with a count
  • Examples:
    • 2dd — delete 2 lines
    • 3p — paste 3 times
    • 5 dw — delete 5 words
    • 10j — move down 10 lines

Key Properties

  • . only repeats simple changes, not complex sequences
  • Numeric counts are multiplied, not added: 3. × 3 = 9 not 6
  • Operator + motion = repeat-able command: d2w is one command
  • u undo is itself undo-able

Edge Cases & Gotchas

  • . doesn’t repeat Ex commands (:s/...)
  • . after . compounds: 2. = 6 total
  • Search/replace needs :s///& or & to repeat

Visual Explanation

aliases___dot_command__repetition__counts__N_command__ A Aliases: [Dot Comman Input B Aliases: [Dot Comman Core Mechanism A->B triggers C Aliases: [Dot Comman Output B->C produces

Semantic Network

semantic_aliases___dot_command__repetition__counts__N_command__ THIS Aliases: [Dot Comman REL1 Related Concept THIS--REL1 related REL2 Builds Into THIS--REL2 builds into

Connections