273 lines
6.4 KiB
Markdown
273 lines
6.4 KiB
Markdown
# 🎓 Vim Mastery - Progressive Learning Path
|
|
|
|
Master Vim one technique at a time, building real skill over months instead of trying to learn everything at once.
|
|
|
|
---
|
|
|
|
## 🎯 Philosophy: The One-Trick-Per-Week Method
|
|
|
|
Instead of overwhelming yourself with hundreds of commands:
|
|
1. **Learn ONE new command/technique each week**
|
|
2. **Practice it consciously** in your daily work
|
|
3. **Use it until it becomes muscle memory**
|
|
4. **Move to the next technique**
|
|
|
|
After one year: **52 new powerful techniques!**
|
|
|
|
---
|
|
|
|
## 🗺️ Learning Roadmap
|
|
|
|
### Weeks 1-4: Foundation
|
|
Build essential motion and editing skills
|
|
- **[Week 1: Motion Basics](week-01-motions.md)** - Move efficiently
|
|
- **[Week 2: Text Objects](week-02-text-objects.md)** - Edit intelligently
|
|
- **[Week 3: Advanced Editing](week-03-advanced.md)** - Visual mode & macros intro
|
|
- **[Week 4: Macros & Registers](week-04-macros.md)** - Automate repetitive tasks
|
|
|
|
### Weeks 5-8: Power User
|
|
Master Vim's unique features
|
|
- **[Week 5: Command Line](week-05-cmdline.md)** - Ex commands & substitution
|
|
- **[Week 6: Windows & Tabs](week-06-windows.md)** - Workspace management
|
|
- **[Week 7: Search & Replace](week-07-search.md)** - Advanced patterns
|
|
- **[Week 8: Marks & Jumps](week-08-marks.md)** - Navigate large codebases
|
|
|
|
### Ongoing: Mastery
|
|
Continuous improvement
|
|
- **[Tips & Tricks](tips-and-tricks.md)** - Productivity boosters
|
|
- **[Workflows](workflows.md)** - Real-world patterns
|
|
- **[Advanced Topics](advanced.md)** - Vim script, Lua, custom commands
|
|
|
|
---
|
|
|
|
## 📊 Skill Progression
|
|
|
|
```
|
|
Week 0: hjkl, basic editing [Beginner]
|
|
↓
|
|
Week 2: Word motions, text objects [Functional]
|
|
↓
|
|
Week 4: Visual mode, basic macros [Comfortable]
|
|
↓
|
|
Week 6: Ex commands, window management [Efficient]
|
|
↓
|
|
Week 8: Advanced searching, marks [Proficient]
|
|
↓
|
|
Month 3: Custom workflows [Advanced]
|
|
↓
|
|
Month 6: Vim expert, teaching others [Master]
|
|
```
|
|
|
|
---
|
|
|
|
## 🎯 Learning Objectives
|
|
|
|
### By Week 4
|
|
You will be able to:
|
|
- Navigate code without arrow keys
|
|
- Edit text objects (change word, delete paragraph)
|
|
- Use visual mode for selections
|
|
- Record and replay simple macros
|
|
- Be MORE productive than with mouse + arrow keys
|
|
|
|
### By Week 8
|
|
You will be able to:
|
|
- Refactor code efficiently
|
|
- Use advanced search patterns
|
|
- Manage multiple windows and tabs
|
|
- Navigate large codebases with marks
|
|
- Automate repetitive tasks with macros
|
|
|
|
### By Month 6
|
|
You will be able to:
|
|
- Edit at the speed of thought
|
|
- Teach Vim to others
|
|
- Create custom workflows
|
|
- Write your own Vim scripts
|
|
- Never want to use another editor
|
|
|
|
---
|
|
|
|
## 📖 Weekly Structure
|
|
|
|
Each week follows this pattern:
|
|
|
|
### Monday: Learn
|
|
- Read the week's guide (15 minutes)
|
|
- Watch any linked videos
|
|
- Understand the concepts
|
|
|
|
### Tuesday-Friday: Practice
|
|
- Pick 2-3 commands from the week's list
|
|
- Use them consciously in real work
|
|
- Don't worry about speed yet
|
|
- Focus on correctness
|
|
|
|
### Weekend: Review
|
|
- What did you learn?
|
|
- What felt natural?
|
|
- What needs more practice?
|
|
- Pick next week's focus
|
|
|
|
---
|
|
|
|
## 💡 Learning Tips
|
|
|
|
### 1. Deliberate Practice
|
|
Don't just read - **use** the commands in real code.
|
|
|
|
### 2. Start Slow
|
|
Speed comes with muscle memory. Focus on correctness first.
|
|
|
|
### 3. One Thing at a Time
|
|
Master one command before adding another.
|
|
|
|
### 4. Keep a Cheat Sheet
|
|
Write down your current week's commands somewhere visible.
|
|
|
|
### 5. Use the In-Editor Cheatsheet
|
|
`<Leader>sc` is your friend!
|
|
|
|
### 6. Don't Rush
|
|
It's okay to spend 2 weeks on one topic if needed.
|
|
|
|
### 7. Apply Immediately
|
|
Learn Monday, use in real work Tuesday.
|
|
|
|
### 8. Embrace Mistakes
|
|
Undo (`u`) is your safety net. Experiment!
|
|
|
|
---
|
|
|
|
## 🎮 Practice Exercises
|
|
|
|
Each week includes:
|
|
- **Focused drills** - Specific command practice
|
|
- **Real-world scenarios** - Apply to actual code
|
|
- **Challenge tasks** - Test your skills
|
|
- **Cheat sheet** - Quick reference
|
|
|
|
---
|
|
|
|
## 📚 Recommended Schedule
|
|
|
|
### If You're New to Vim
|
|
- **Pace**: 1 week per topic
|
|
- **Time**: 30 minutes/day practice
|
|
- **Duration**: 8 weeks to proficiency
|
|
|
|
### If You Know Basic Vim
|
|
- **Pace**: 2-3 topics per week
|
|
- **Time**: 15 minutes/day practice
|
|
- **Duration**: 4 weeks to level up
|
|
|
|
### If You Want to Master Vim
|
|
- **Pace**: All topics + advanced
|
|
- **Time**: 1 hour/day practice
|
|
- **Duration**: 3-6 months to mastery
|
|
|
|
---
|
|
|
|
## 🗺️ Your Journey Starts Here
|
|
|
|
### Absolute Beginner?
|
|
Start with **[Week 1: Motion Basics](week-01-motions.md)**
|
|
|
|
### Know hjkl Already?
|
|
Jump to **[Week 2: Text Objects](week-02-text-objects.md)**
|
|
|
|
### Comfortable with Vim?
|
|
Explore **[Tips & Tricks](tips-and-tricks.md)** and **[Workflows](workflows.md)**
|
|
|
|
### Want to Master Everything?
|
|
Follow the full 8-week program, then **[Advanced Topics](advanced.md)**
|
|
|
|
---
|
|
|
|
## 📈 Track Your Progress
|
|
|
|
Create a file to track what you've learned:
|
|
|
|
```vim
|
|
:e ~/vim-mastery-log.md
|
|
```
|
|
|
|
Template:
|
|
```markdown
|
|
# My Vim Mastery Journey
|
|
|
|
## Week 1: Motion Basics
|
|
- Started: 2025-11-01
|
|
- Mastered: w, b, e, 0, $
|
|
- Still practicing: f/F, t/T
|
|
- Favorite new trick: dt, (delete till comma)
|
|
|
|
## Week 2: Text Objects
|
|
...
|
|
```
|
|
|
|
---
|
|
|
|
## 🎯 Success Metrics
|
|
|
|
You're making progress when:
|
|
- ✅ You reach for hjkl instead of arrow keys
|
|
- ✅ You think "change inner word" instead of selecting with mouse
|
|
- ✅ You prefer Vim commands over GUI operations
|
|
- ✅ You can edit without looking at keyboard
|
|
- ✅ You start teaching others
|
|
- ✅ You feel frustrated using non-Vim editors
|
|
|
|
---
|
|
|
|
## 💬 Community
|
|
|
|
Share your progress:
|
|
- **Reddit**: r/vim, r/neovim
|
|
- **Discord**: Neovim community server
|
|
- **GitHub**: Open issues with questions
|
|
|
|
---
|
|
|
|
## 📚 Additional Resources
|
|
|
|
### Books
|
|
- **Practical Vim** by Drew Neil (highly recommended!)
|
|
- **Modern Vim** by Drew Neil
|
|
- **Learning the Vi and Vim Editors**
|
|
|
|
### Videos
|
|
- **ThePrimeagen's Vim Course**
|
|
- **Vim Casts** (vimcasts.org)
|
|
- **TJ DeVries' Neovim streams**
|
|
|
|
### Interactive
|
|
- `:Tutor` - Built into Neovim
|
|
- **Vim Adventures** - Learn through gaming
|
|
- **OpenVim** - Interactive tutorial
|
|
|
|
### References
|
|
- `:help` - Vim's excellent documentation
|
|
- **vim.rtorr.com** - Quick reference
|
|
- **This config's cheatsheet** - `<Leader>sc`
|
|
|
|
---
|
|
|
|
## 🎊 Ready to Begin?
|
|
|
|
Remember: **Progress > Perfection**
|
|
|
|
Every expert was once a beginner. The only difference is they kept practicing.
|
|
|
|
---
|
|
|
|
<div align="center">
|
|
|
|
**Your journey to Vim mastery starts now!**
|
|
|
|
[Week 1: Motion Basics →](week-01-motions.md)
|
|
|
|
[Back to Documentation](../README.md) | [Tips & Tricks](tips-and-tricks.md)
|
|
|
|
</div>
|