Fuzzy Finder: Telescope
Telescope is a highly extendable fuzzy finder for files, text, and more. It’s the primary way to navigate and search in Magictt.Features
- Fast Fuzzy Finding: Quickly find files by typing partial names
- Live Grep: Search text across entire project
- Smart Path Display: Shows relevant parts of file paths
- FZF Integration: Uses native FZF for better performance
- TODO Integration: Search for TODO comments
- Preview Window: Preview file contents before opening
Keybindings
| Keybinding | Action | Description |
|---|---|---|
<leader>ff | Find Files | Fuzzy find files in current directory |
<leader>fr | Recent Files | Find recently opened files |
<leader>fs | Find String | Live grep - search text in all files |
<leader>fc | Find Cursor | Find string under cursor in project |
<leader>ft | Find TODOs | Search TODO comments with Telescope |
Telescope Navigation
Once in Telescope:| Keybinding | Action |
|---|---|
<C-j> | Move to next result |
<C-k> | Move to previous result |
<C-q> | Send selected to quickfix list |
<CR> | Open selected file |
<Esc> | Close Telescope |
Usage Workflows
Find Files
- Press
<leader>ff - Start typing filename (fuzzy matching)
- Navigate results with
<C-j>/<C-k> - Press
<CR>to open file
Search Text
- Press
<leader>fs - Type search term
- Results update live as you type
- Preview shows context
- Open file with
<CR>
Find Under Cursor
- Place cursor on word
- Press
<leader>fc - Telescope searches for that word
- See all occurrences
Recent Files
- Press
<leader>fr - See recently opened files
- Quick access to your working set
Configuration
Location:lua/magictt/plugins/telescope.lua
FZF Native Extension
The telescope-fzf-native extension provides:- Faster sorting
- Better fuzzy matching algorithm
- Native C implementation for performance
make to build during installation.
File Explorer: nvim-tree
nvim-tree is a file explorer tree that provides a traditional sidebar view of your project structure.Features
- Tree View: Hierarchical file/folder display
- Git Integration: Shows git status for files
- Icons: File type icons and folder indicators
- Relative Numbers: Line numbers for quick navigation
- Indent Markers: Visual guides for tree structure
- File Operations: Create, rename, delete files/folders
Keybindings
Open/Close
| Keybinding | Action |
|---|---|
<leader>ee | Toggle file explorer |
<leader>ef | Toggle explorer on current file |
<leader>ec | Collapse file explorer |
<leader>er | Refresh file explorer |
Inside nvim-tree
| Keybinding | Action |
|---|---|
<CR> | Open file/folder |
o | Open file/folder |
<C-v> | Open in vertical split |
<C-x> | Open in horizontal split |
<C-t> | Open in new tab |
<BS> | Close directory |
P | Go to parent directory |
K | Go to first sibling |
J | Go to last sibling |
r | Rename file/folder |
a | Create new file/folder |
d | Delete file/folder |
c | Copy file/folder |
x | Cut file/folder |
p | Paste file/folder |
y | Copy filename |
Y | Copy relative path |
gy | Copy absolute path |
g? | Show help |
q | Close tree |
Git Status Icons
- ✓ Staged
- ✗ Deleted
- ★ Renamed
- ✚ Untracked
- ● Modified
- ◌ Ignored
File Operations Workflow
Create File/Folder
- Open nvim-tree (
<leader>ee) - Navigate to desired location
- Press
a(add) - Type name (add
/at end for folder) - Press
<CR>
Rename File
- Navigate to file
- Press
r - Edit name
- Press
<CR> - LSP automatically updates imports (via nvim-lsp-file-operations)
Delete File
- Navigate to file
- Press
d - Confirm deletion
Configuration
Location:lua/magictt/plugins/nvim-tree.lua
Quick Navigation: Harpoon
Harpoon provides lightning-fast navigation between your most important files in a project.Concept
Harpoon lets you “mark” files and quickly jump between them:- Add files to your Harpoon list
- Navigate with simple keybindings
- Perfect for files you’re actively working on
Features
- Quick Marks: Mark important files
- Fast Navigation: Jump between marked files instantly
- Visual Menu: See all marked files
- Persistent: Marks persist per project
- Minimal: No visual clutter
Keybindings
| Keybinding | Action |
|---|---|
<leader>ha | Add current file to Harpoon |
<leader>hr | Remove current file from Harpoon |
<C-e> | Toggle Harpoon quick menu |
<C-p> | Navigate to previous Harpoon file |
<C-n> | Navigate to next Harpoon file |
Workflow
Typical Harpoon Session
-
Mark Files
-
Navigate Between Files
-
View All Marks
-
Remove Marks
Use Cases
- Active Development: Mark the 3-4 files you’re currently working on
- Code Review: Mark files under review for easy switching
- Related Files: Mark implementation, test, and config files
- Quick Context Switch: Jump between feature files
Configuration
Location:lua/magictt/plugins/harpoon.lua
Navigation Comparison
When to Use Each Tool
| Tool | Best For | Speed | Use Case |
|---|---|---|---|
| Telescope | Finding files by name or content | Fast | ”Where is that file?“ |
| nvim-tree | Exploring project structure | Medium | ”What’s in this folder?” |
| Harpoon | Switching between active files | Instant | ”Back to my main files” |
Combined Workflow Example
Keybindings Summary
Quick Reference
| Keybinding | Action | Tool |
|---|---|---|
<leader>ff | Find files | Telescope |
<leader>fs | Search text | Telescope |
<leader>fr | Recent files | Telescope |
<leader>ft | Find TODOs | Telescope |
<leader>ee | Toggle tree | nvim-tree |
<leader>ef | Find in tree | nvim-tree |
<leader>ha | Harpoon add | Harpoon |
<C-e> | Harpoon menu | Harpoon |
<C-p> / <C-n> | Harpoon nav | Harpoon |
Tips and Tricks
Telescope
- Use fuzzy matching: type non-contiguous letters
- “mcom” matches “MainComponent.jsx”
- Use
<C-q>to send results to quickfix for batch operations - Preview window shows file contents before opening
nvim-tree
- Use relative numbers (
<number>j/<number>k) for fast navigation - Press
g?inside tree to see all keybindings - Use
.to show/hide hidden files
Harpoon
- Keep your list small (3-5 files) for best results
- Clear your list when switching tasks
- Use
<C-e>to reorder files in the menu
Customization
Change Telescope Layout
Editlua/magictt/plugins/telescope.lua:
Change nvim-tree Width
Editlua/magictt/plugins/nvim-tree.lua:
Add More Harpoon Keybindings
Editlua/magictt/plugins/harpoon.lua:
Related Documentation
Plugin Overview
See all installed plugins
Keybindings
Complete keybinding reference