|
| 1 | +# Duplicate Keymaps Reference |
| 2 | + |
| 3 | +This document lists all keymaps where the same action can be performed using multiple key combinations. |
| 4 | + |
| 5 | +## Philosophy |
| 6 | + |
| 7 | +Having duplicate keymaps is **intentional and beneficial**: |
| 8 | +- **Vim defaults + Modern alternatives**: Keep familiar vim keys while adding intuitive modern ones |
| 9 | +- **Consistency across plugins**: Same keys work the same way in Telescope and Neo-tree |
| 10 | +- **Ergonomics**: Function keys (F5-F12) AND leader keys for debugging |
| 11 | +- **Context switching**: Use what feels natural in different workflows |
| 12 | + |
| 13 | +## Debug Actions |
| 14 | + |
| 15 | +| Action | Keys | Notes | |
| 16 | +|--------|------|-------| |
| 17 | +| Continue | `F5` or `<Space>dc` | F5 is standard in many IDEs | |
| 18 | +| Step over | `F10` or `<Space>dO` | Uppercase O for over | |
| 19 | +| Step into | `F11` or `<Space>di` | | |
| 20 | +| Step out | `F12` or `<Space>do` | Lowercase o for out | |
| 21 | + |
| 22 | +**Why duplicates?** Function keys are muscle memory from other IDEs. Leader keys are more discoverable via which-key and don't conflict with terminal function keys. |
| 23 | + |
| 24 | +## Neo-tree vs Consistent Actions |
| 25 | + |
| 26 | +| Action | Neo-tree Default | Consistent Alternative | Notes | |
| 27 | +|--------|------------------|------------------------|-------| |
| 28 | +| Vertical split | `s` | `Ctrl-v` | Matches Telescope | |
| 29 | +| Horizontal split | `S` | `Ctrl-x` | Matches Telescope | |
| 30 | +| New tab | `t` | `Ctrl-t` | Matches Telescope | |
| 31 | +| Next source | `>` | `Ctrl-j` | Matches Telescope navigation | |
| 32 | +| Previous source | `<` | `Ctrl-k` | Matches Telescope navigation | |
| 33 | +| Close window | `q` | `\` or `Esc` | Backslash mirrors toggle | |
| 34 | +| Open file | `<CR>` | `o` | Two ways to open | |
| 35 | + |
| 36 | +**Why duplicates?** Neo-tree defaults are efficient single-key presses. Consistent alternatives (`Ctrl-x/v/t/j/k`) work the same way in Telescope, reducing cognitive load when switching between file finder and file tree. |
| 37 | + |
| 38 | +## Flutter Code Actions |
| 39 | + |
| 40 | +| Action | Keys | Notes | |
| 41 | +|--------|------|-------| |
| 42 | +| Code actions | `<Space>.` or `gra` | Period mimics Cmd+. in IDEs, gra is standard LSP | |
| 43 | + |
| 44 | +**Why duplicates?** Flutter developers coming from IDEs expect `.` (like Cmd+.). `gra` is the standard LSP keymap used everywhere else. |
| 45 | + |
| 46 | +## Telescope Navigation |
| 47 | + |
| 48 | +| Action | Keys | Notes | |
| 49 | +|--------|------|-------| |
| 50 | +| Next/prev item | `Ctrl-j/k` or `j/k` (normal) | Insert mode uses Ctrl, normal mode uses plain | |
| 51 | +| Close | `Ctrl-c` or `Esc` or `q` (normal) | Three ways to exit | |
| 52 | + |
| 53 | +**Why duplicates?** `Ctrl-j/k` work in insert mode without switching modes. In normal mode, plain `j/k` are more natural. |
| 54 | + |
| 55 | +## Vim Defaults |
| 56 | + |
| 57 | +| Action | Keys | Notes | |
| 58 | +|--------|------|-------| |
| 59 | +| Save and quit | `:wq` or `ZZ` | ZZ is faster | |
| 60 | +| Quit without save | `:q!` or `ZQ` | ZQ is faster | |
| 61 | + |
| 62 | +**Why duplicates?** Both are vim defaults. ZZ/ZQ are faster but less discoverable. |
| 63 | + |
| 64 | +## Summary of Duplicate Patterns |
| 65 | + |
| 66 | +1. **Debug**: F-keys + Leader keys (muscle memory from IDEs + discoverability) |
| 67 | +2. **Splits/Tabs**: Single keys + Ctrl combos (efficiency + consistency) |
| 68 | +3. **Navigation**: Plain + Ctrl variants (context-dependent ergonomics) |
| 69 | +4. **Close/Exit**: Multiple keys (q, Esc, Ctrl-c, \\) (different mental models) |
| 70 | + |
| 71 | +## Design Principles |
| 72 | + |
| 73 | +1. **Never remove defaults** unless they conflict |
| 74 | +2. **Add consistent alternatives** that work across plugins |
| 75 | +3. **Document all options** so users can choose their preferred style |
| 76 | +4. **Optimize for discoverability** (leader keys show in which-key) |
| 77 | +5. **Respect muscle memory** (keep vim and IDE conventions) |
| 78 | + |
| 79 | +## Quick Reference: Cross-Plugin Consistency |
| 80 | + |
| 81 | +These keys work the same way in **both Telescope and Neo-tree**: |
| 82 | + |
| 83 | +- `Ctrl-x` → Horizontal split |
| 84 | +- `Ctrl-v` → Vertical split |
| 85 | +- `Ctrl-t` → New tab |
| 86 | +- `Ctrl-j` → Next/down |
| 87 | +- `Ctrl-k` → Previous/up |
| 88 | +- `?` → Show help |
| 89 | + |
| 90 | +This consistency means once you learn these in one plugin, they work the same everywhere. |
0 commit comments