Neovim Motions and Navigation

📊 Auto-Progress Tracking

TABLE WITHOUT ID
  "📈 Progress" as " ",
  length(filter(file.tasks, (t) => t.completed)) + "/" + length(file.tasks) + " tasks" as "Completed",
  round(length(filter(file.tasks, (t) => t.completed)) / length(file.tasks) * 100) + "%" as "Progress"
WHERE file.path = this.file.path

📋 Module Overview

Master efficient navigation and movement commands in Neovim using keyboard-only controls.

Estimated Time: 6-8 hours | Prerequisites: 01 - Neovim Basics

📚 Tasks & Exercises

1. Basic Movement (hjkl)

  • Task 1.1: Practice h/j/k/l movement for 10 minutes daily
  • Task 1.2: Navigate without using arrow keys
  • Task 1.3: Use 0 and $ for line beginning/end

2. Word Movement

  • Task 2.1: Learn w/b for word forward/backward
  • Task 2.2: Practice e for end of word
  • Task 2.3: Use W/B/E for WORD movement
  • Task 2.4: Practice f/F and t/T for character search

3. Line and Screen Navigation

  • Task 3.1: Use gg/G for file beginning/end
  • Task 3.2: Practice :line_number to jump to lines
  • Task 3.3: Learn Ctrl+u/d for half-page scrolling
  • Task 3.4: Use H/M/L for screen positioning
  • Task 3.5: Practice zz/zt/zb for screen centering

4. Advanced Navigation

  • Task 4.1: Set marks with m{letter}
  • Task 4.2: Jump to marks with ‘{letter}
  • Task 4.3: Use Ctrl+o/i for jump history

📖 Resources

  • :h motion.txt - Neovim motion documentation
  • Vim Adventures - Levels 1-3
  • Vimtutor lessons 2-3

Previous: 01 - Neovim Basics | Next: 03 - Neovim Text Editing