295 lines
7.9 KiB
Markdown
295 lines
7.9 KiB
Markdown
# Top 10 Things New Doom Emacs Users Should Know
|
|
|
|
## 🚀 **Getting Started with Doom Emacs**
|
|
|
|
Welcome to Doom Emacs! Here are the 10 most essential things every new user
|
|
should master to get productive quickly.
|
|
|
|
---
|
|
|
|
## 1. 🗝️ **Master the Leader Key: `SPC`**
|
|
|
|
**The Space key is your gateway to everything in Doom Emacs.**
|
|
|
|
- `SPC` is called the "leader key" - it opens menus for almost every action
|
|
- After pressing `SPC`, you'll see helpful hints showing available commands
|
|
- Commands are organized logically: `SPC f` for files, `SPC g` for git, `SPC p`
|
|
for projects
|
|
|
|
**Essential starter commands:**
|
|
|
|
- `SPC f f` - Find/open files
|
|
- `SPC f s` - Save current file
|
|
- `SPC q q` - Quit Emacs
|
|
- `SPC h` - Help menu (very important!)
|
|
|
|
**Pro Tip:** If you forget what comes next, just press `SPC` and wait - Doom
|
|
will show you the options!
|
|
|
|
---
|
|
|
|
## 2. 📁 **Navigate Files Like a Pro**
|
|
|
|
**File navigation is fundamental to productivity.**
|
|
|
|
- `SPC .` - **Open file explorer** (Dired) in current directory
|
|
- `SPC f f` - **Find file** anywhere on your system
|
|
- `SPC f r` - **Recent files** you've worked on
|
|
- `SPC SPC` - **Find file in current project** (super useful!)
|
|
|
|
📋 _See the complete guide: `emacs.file-explorer.cheatsheet.md`_
|
|
|
|
**Quick workflow:**
|
|
|
|
1. Open your project directory in terminal
|
|
2. Start Emacs: `emacs` or `doom run`
|
|
3. Use `SPC .` to browse files or `SPC SPC` to quickly find files
|
|
|
|
---
|
|
|
|
## 3. ⌨️ **Understand Evil Mode (Vim Keybindings)**
|
|
|
|
**Doom Emacs uses Vim-style keybindings by default.**
|
|
|
|
**Basic movement (in Normal mode):**
|
|
|
|
- `h j k l` - Left, down, up, right
|
|
- `w` - Jump to next word
|
|
- `b` - Jump back one word
|
|
- `gg` - Go to top of file
|
|
- `G` - Go to bottom of file
|
|
|
|
**Mode switching:**
|
|
|
|
- `i` - Enter Insert mode (to type text)
|
|
- `ESC` - Return to Normal mode
|
|
- `v` - Visual mode (to select text)
|
|
|
|
**If you're not familiar with Vim:** Don't panic! You can learn gradually. The
|
|
basics above will get you started.
|
|
|
|
---
|
|
|
|
## 4. 🔍 **Search and Replace Efficiently**
|
|
|
|
**Finding and changing text is a daily task.**
|
|
|
|
- `/` - Search forward in current buffer
|
|
- `?` - Search backward in current buffer
|
|
- `n/N` - Next/previous search result
|
|
- `SPC s s` - Search in current buffer (interactive)
|
|
- `SPC s p` - Search in entire project
|
|
- `SPC s r` - Search and replace in current buffer
|
|
|
|
**For project-wide search:** `SPC s p` is incredibly powerful for finding code
|
|
across your entire project.
|
|
|
|
---
|
|
|
|
## 5. 🗂️ **Work with Buffers and Windows**
|
|
|
|
**Buffers are open files, windows are how you view them.**
|
|
|
|
**Buffer management:**
|
|
|
|
- `SPC b b` - Switch between open buffers
|
|
- `SPC b k` - Kill (close) current buffer
|
|
- `SPC b s` - Save current buffer
|
|
|
|
**Window management:**
|
|
|
|
- `SPC w v` - Split window vertically
|
|
- `SPC w s` - Split window horizontally
|
|
- `SPC w c` - Close current window
|
|
- `SPC w w` - Switch between windows
|
|
- `C-h j/k/h/l` - Navigate between windows (Vim-style)
|
|
|
|
**Think of it this way:** You can have many files open (buffers) but only see
|
|
some of them at once (windows).
|
|
|
|
---
|
|
|
|
## 6. 🛠️ **Configure and Customize Doom**
|
|
|
|
**Doom is highly configurable, but start simple.**
|
|
|
|
**Key files to know about:**
|
|
|
|
- `~/.doom.d/config.el` - Your personal configuration
|
|
- `~/.doom.d/init.el` - Enable/disable Doom modules
|
|
- `~/.doom.d/packages.el` - Add extra packages
|
|
|
|
**Essential commands:**
|
|
|
|
- `SPC h r r` - Reload Doom configuration
|
|
- `SPC h d h` - Doom help and documentation
|
|
- `doom doctor` - Check for configuration issues (run in terminal)
|
|
- `doom upgrade` - Update Doom (run in terminal)
|
|
|
|
**Start small:** Don't try to customize everything at once. Use Doom's defaults
|
|
first, then gradually tweak things.
|
|
|
|
---
|
|
|
|
## 7. 📝 **Master Text Editing Basics**
|
|
|
|
**Essential editing commands that work in any mode.**
|
|
|
|
**In Normal mode (Evil):**
|
|
|
|
- `x` - Delete character under cursor
|
|
- `dd` - Delete entire line
|
|
- `yy` - Copy (yank) entire line
|
|
- `p` - Paste after cursor
|
|
- `u` - Undo
|
|
- `C-r` - Redo
|
|
|
|
**In Insert mode:**
|
|
|
|
- `C-w` - Delete word backward
|
|
- `C-u` - Delete to beginning of line
|
|
|
|
**Selection and manipulation:**
|
|
|
|
- `v` - Start visual selection
|
|
- `V` - Select entire line
|
|
- `d` - Delete selected text
|
|
- `y` - Copy selected text
|
|
|
|
---
|
|
|
|
## 8. 💻 **Use Code Completion and Language Features**
|
|
|
|
**Doom comes with excellent code support out of the box.**
|
|
|
|
**Auto-completion:**
|
|
|
|
- Just start typing - completions appear automatically
|
|
- `TAB` - Accept completion
|
|
- `C-n/C-p` or `j/k` - Navigate completion options
|
|
|
|
**Code navigation:**
|
|
|
|
- `gd` - Go to definition
|
|
- `gr` - Find references
|
|
- `K` - Show documentation
|
|
- `SPC c a` - Code actions (refactor, fix, etc.)
|
|
|
|
📋 _See the complete guide: `emacs.code-completion.cheatsheet.md`_
|
|
|
|
**Languages supported:** Most popular languages work out of the box (Python,
|
|
JavaScript, C/C++, Rust, Go, etc.)
|
|
|
|
---
|
|
|
|
## 9. 📚 **Use Built-in Help System**
|
|
|
|
**Doom has excellent built-in documentation.**
|
|
|
|
- `SPC h` - **Main help menu**
|
|
- `SPC h d h` - **Doom-specific help**
|
|
- `SPC h k` - **Describe key** (what does this key do?)
|
|
- `SPC h f` - **Describe function**
|
|
- `SPC h v` - **Describe variable**
|
|
- `C-h m` - **Show help for current mode**
|
|
|
|
**When you're lost:** Press `SPC h` and explore. The help system is
|
|
comprehensive and always available.
|
|
|
|
**Pro Tip:** If you press a key combination and don't know what happened, use
|
|
`SPC h l` to see recent commands.
|
|
|
|
---
|
|
|
|
## 10. 🔧 **Learn Git Integration (Magit)**
|
|
|
|
**Magit is one of the best Git interfaces available anywhere.**
|
|
|
|
- `SPC g g` - Open Magit status (your main Git command!)
|
|
- `s` - Stage files or hunks
|
|
- `c c` - Commit changes
|
|
- `P P` - Push to remote
|
|
- `F F` - Pull from remote
|
|
|
|
📋 _See the complete guide: `emacs.magit.cheatsheet.md`_
|
|
|
|
**Basic workflow:**
|
|
|
|
1. `SPC g g` - See what's changed
|
|
2. `s` on files to stage them
|
|
3. `c c` to commit (write message, then `C-c C-c`)
|
|
4. `P P` to push
|
|
|
|
**Why it's essential:** If you work with Git, Magit will transform your
|
|
workflow. It's visual, fast, and incredibly powerful.
|
|
|
|
---
|
|
|
|
## 🎯 **Quick Start Checklist**
|
|
|
|
Once you've read through the above, try this 5-minute workflow:
|
|
|
|
1. ✅ **Open Doom:** `emacs` in terminal
|
|
2. ✅ **Find a file:** `SPC f f` and open any text file
|
|
3. ✅ **Edit something:** Press `i`, type text, press `ESC`
|
|
4. ✅ **Save:** `SPC f s`
|
|
5. ✅ **Open file explorer:** `SPC .`
|
|
6. ✅ **Get help:** `SPC h`
|
|
7. ✅ **Split window:** `SPC w v`
|
|
8. ✅ **Switch buffers:** `SPC b b`
|
|
9. ✅ **Search project:** `SPC s p` (if in a project)
|
|
10. ✅ **Quit:** `SPC q q`
|
|
|
|
---
|
|
|
|
## 📖 **Next Steps: Dive Deeper**
|
|
|
|
Once you're comfortable with the basics above:
|
|
|
|
1. **Read the specific cheatsheets:**
|
|
- `emacs.file-explorer.cheatsheet.md` - File management
|
|
- `emacs.code-completion.cheatsheet.md` - Coding features
|
|
- `emacs.magit.cheatsheet.md` - Git integration
|
|
- `emacs.markdown.cheatsheet.md` - Markdown editing
|
|
|
|
2. **Customize gradually:** Start tweaking your `config.el`
|
|
3. **Learn your language:** Explore language-specific features
|
|
4. **Join the community:** Doom Discord, Reddit, GitHub discussions
|
|
|
|
---
|
|
|
|
## 🆘 **When You're Stuck**
|
|
|
|
**Emergency commands:**
|
|
|
|
- `C-g` - Cancel current command (like pressing ESC)
|
|
- `SPC q q` - Quit Emacs
|
|
- `SPC h d h` - Doom help
|
|
- `:q` - Quit current buffer (Vim command)
|
|
|
|
**Remember:** Every expert was once a beginner. Don't try to learn everything at
|
|
once. Master these 10 things first, then gradually explore more advanced
|
|
features.
|
|
|
|
**Most important tip:** Use `SPC` and explore the menus. Doom is designed to be
|
|
discoverable - let it guide you!
|
|
|
|
---
|
|
|
|
## 🎓 **Learning Philosophy**
|
|
|
|
**Start with workflows, not features:** Instead of memorizing every keybinding,
|
|
learn complete workflows for tasks you do daily (editing files, committing code,
|
|
searching projects).
|
|
|
|
**Use the defaults first:** Doom's defaults are excellent. Resist the urge to
|
|
customize everything immediately.
|
|
|
|
**One thing at a time:** Master file navigation before diving into advanced code
|
|
features. Build your skills incrementally.
|
|
|
|
**Practice daily:** Use Doom for real work, even if you're slower at first.
|
|
Muscle memory develops with practice.
|
|
|
|
Welcome to Doom Emacs! 🚀
|