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

The Problem

Moving inefficiently kills productivity. Cursor-by-cursor navigation doesn’t scale for large files. Efficient editing requires efficient movement commands.

Core Idea

Vim provides granular movement commands: character, word, line, search, and screen-level navigation.

How It Works

Line-level navigation:

KeyDestination
0First column (column 0)
^First non-blank character
$End of line
g_Last non-blank character
faNext a on line (repeat with ;, back with ,)
taJust before next a
Fa / TaSame, backward

Word moves:

  • w — start of next word
  • e — end of current word
  • b — start of previous word

WORD vs word: word = alphanumeric + underscore; WORD = whitespace-separated

File navigation:

  • gg — start of file (shortcut for 1G)
  • G — last line
  • N G — line N

Key Properties

  • All movement commands can be combined with operators: d$, yG, ce
  • * is smart: uses word boundaries
  • Counts work: 3w moves 3 words; 5j moves 5 lines down
  • n repeats last search, N reverses

Edge Cases & Gotchas

  • ^ visually appears above _ but is different
  • f is line-local — doesn’t wrap by default, use ; or search
  • Word boundaries differ from TEXT objects boundaries

Visual Explanation

aliases___navigation__search__motion__word_moves__pattern_search_ A Aliases: [Navigation Input B Aliases: [Navigation Core Mechanism A->B triggers C Aliases: [Navigation Output B->C produces

Semantic Network

semantic_aliases___navigation__search__motion__word_moves__pattern_search_ THIS Aliases: [Navigation REL1 Related Concept THIS--REL1 related REL2 Builds Into THIS--REL2 builds into

Connections