@@ -8,13 +8,13 @@ Complete keyboard shortcut reference for `fac` editor. |
| 8 | | 8 | |
| 9 | | Keybinding | Command | Description | | 9 | | Keybinding | Command | Description | |
| 10 | |------------|---------|-------------| | 10 | |------------|---------|-------------| |
| 11 | -| `F12` or `Ctrl+\` | Go to Definition | Jump to where a symbol is defined | | 11 | +| `F12` or `Ctrl+\` or `Alt+G` | Go to Definition | Jump to where a symbol is defined | |
| 12 | -| `Shift+F12` or `Ctrl+Shift+R` | Find References | Find all usages of a symbol | | 12 | +| `Shift+F12` or `Alt+R` | Find References | Find all usages of a symbol | |
| 13 | | `F2` | Rename Symbol | Rename symbol across entire project | | 13 | | `F2` | Rename Symbol | Rename symbol across entire project | |
| 14 | -| `Ctrl+.` | Code Actions | Quick fixes and refactorings | | 14 | +| `F10` or `Alt+.` | Code Actions | Quick fixes and refactorings | |
| 15 | -| `F8` or `Ctrl+Shift+D` | Diagnostics Panel | Show all errors and warnings | | 15 | +| `F8` or `Alt+E` | Diagnostics Panel | Show all errors and warnings | |
| 16 | -| `F4` or `Ctrl+Shift+O` | Document Symbols | Navigate symbols in current file | | 16 | +| `F4` or `Alt+O` | Document Symbols | Navigate symbols in current file | |
| 17 | -| `F6` or `Ctrl+Shift+T` | Workspace Symbols | Search symbols across all files | | 17 | +| `F6` or `Alt+P` | Workspace Symbols | Search symbols across all files | |
| 18 | | `Ctrl+P` | Command Palette | Search and execute any command | | 18 | | `Ctrl+P` | Command Palette | Search and execute any command | |
| 19 | | `Shift+Alt+F` | Format Document | Auto-format current file | | 19 | | `Shift+Alt+F` | Format Document | Auto-format current file | |
| 20 | | `Alt+,` | Jump Back | Return to previous location (jump stack) | | 20 | | `Alt+,` | Jump Back | Return to previous location (jump stack) | |
@@ -76,17 +76,17 @@ Complete keyboard shortcut reference for `fac` editor. |
| 76 | | Keybinding | Command | Description | | 76 | | Keybinding | Command | Description | |
| 77 | |------------|---------|-------------| | 77 | |------------|---------|-------------| |
| 78 | | `Ctrl+T` | New Tab | Create new empty tab | | 78 | | `Ctrl+T` | New Tab | Create new empty tab | |
| 79 | -| `Ctrl+W` | Close Tab | Close current tab | | 79 | +| `Ctrl+W` | Close Tab/Pane | Close current pane (then tab if last pane) | |
| 80 | -| `Ctrl+Tab` | Next Tab | Switch to next tab | | 80 | +| `Ctrl+PageDown` or `Ctrl+Alt+Right` | Next Tab | Switch to next tab | |
| 81 | -| `F6ab` | Previous Tab | Switch to previous tab | | 81 | +| `Ctrl+PageUp` or `Ctrl+Alt+Left` | Previous Tab | Switch to previous tab | |
| 82 | -| `Alt+1` to `Alt+9` | Jump to Tab | Switch to specific tab number | | 82 | +| `Alt+1` to `Alt+9` (or `Ctrl+1` to `Ctrl+9`) | Jump to Tab | Switch to specific tab number | |
| 83 | -| `Ctrl+\` | Split Vertical | Split current pane vertically | | 83 | +| `Alt+V` | Split Vertical | Split current pane vertically | |
| 84 | -| `Ctrl+Shift+\` | Split Horizontal | Split current pane horizontally | | 84 | +| `Alt+S` | Split Horizontal | Split current pane horizontally | |
| 85 | -| `Ctrl+Shift+W` | Close Pane | Close current pane | | 85 | +| `Alt+Q` | Close Pane | Close current pane only | |
| 86 | -| `Ctrl+H` | Navigate Left | Move to pane on the left | | 86 | +| `Alt+H` or `Ctrl+Shift+Left` | Navigate Left | Move to pane on the left | |
| 87 | -| `Ctrl+L` | Navigate Right | Move to pane on the right | | 87 | +| `Alt+L` or `Ctrl+Shift+Right` | Navigate Right | Move to pane on the right | |
| 88 | -| `Ctrl+K` | Navigate Up | Move to pane above | | 88 | +| `Alt+K` or `Ctrl+Shift+Up` | Navigate Up | Move to pane above | |
| 89 | -| `Ctrl+J` | Navigate Down | Move to pane below | | 89 | +| `Alt+J` or `Ctrl+Shift+Down` | Navigate Down | Move to pane below | |
| 90 | | 90 | |
| 91 | --- | 91 | --- |
| 92 | | 92 | |
@@ -95,19 +95,15 @@ Complete keyboard shortcut reference for `fac` editor. |
| 95 | | Keybinding | Command | Description | | 95 | | Keybinding | Command | Description | |
| 96 | |------------|---------|-------------| | 96 | |------------|---------|-------------| |
| 97 | | `↑` `↓` `←` `→` | Move Cursor | Move cursor one character/line | | 97 | | `↑` `↓` `←` `→` | Move Cursor | Move cursor one character/line | |
| 98 | -| `Ctrl+↑` | Move Line Up | Move current line up | | 98 | +| `Alt+↑` | Move Line Up | Move current line up | |
| 99 | -| `Ctrl+↓` | Move Line Down | Move current line down | | 99 | +| `Alt+↓` | Move Line Down | Move current line down | |
| 100 | -| `Home` or `Ctrl+A` | Line Start | Jump to beginning of line | | 100 | +| `Home` or `Ctrl+A` | Line Start | Jump to beginning of line (smart toggle) | |
| 101 | | `End` or `Ctrl+E` | Line End | Jump to end of line | | 101 | | `End` or `Ctrl+E` | Line End | Jump to end of line | |
| 102 | | `Ctrl+Home` | File Start | Jump to beginning of file | | 102 | | `Ctrl+Home` | File Start | Jump to beginning of file | |
| 103 | | `Ctrl+End` | File End | Jump to end of file | | 103 | | `Ctrl+End` | File End | Jump to end of file | |
| 104 | -| `Page Up` | Scroll Up | Move up one screen | | 104 | +| `Alt+←` / `Alt+→` | Word Jump | Move cursor by word | |
| 105 | -| `Page Down` | Scroll Down | Move down one screen | | 105 | +| `Page Up` / `Page Down` | Page Scroll | Move up/down one screen | |
| 106 | -| `Ctrl+U` | Half Page Up | Scroll up half screen (vim-style) | | 106 | +| `Alt+[` / `Alt+]` | Match Bracket | Jump to matching bracket/paren | |
| 107 | -| `Ctrl+B` | Full Page Up | Scroll up full screen (vim-style) | | | |
| 108 | -| `Ctrl+D` | Half Page Down | Scroll down half screen (vim-style) | | | |
| 109 | -| `Ctrl+F` | Full Page Down | Scroll down full screen (vim-style) | | | |
| 110 | -| `%` | Match Bracket | Jump to matching bracket/paren | | | |
| 111 | | 107 | |
| 112 | --- | 108 | --- |
| 113 | | 109 | |
@@ -129,8 +125,9 @@ Complete keyboard shortcut reference for `fac` editor. |
| 129 | | Keybinding | Command | Description | | 125 | | Keybinding | Command | Description | |
| 130 | |------------|---------|-------------| | 126 | |------------|---------|-------------| |
| 131 | | `Ctrl+P` | Command Palette | Search and execute any command | | 127 | | `Ctrl+P` | Command Palette | Search and execute any command | |
| 132 | -| `Ctrl+?` or `F1` | Help | Show help screen | | 128 | +| `Ctrl+?` or `Ctrl+/` | Help | Show help screen | |
| 133 | -| `Ctrl+Shift+F` | File Tree | Toggle file explorer (Fortress mode) | | 129 | +| `Ctrl+B` or `F3` | File Tree | Toggle file explorer (Fuss mode) | |
| | 130 | +| `Ctrl+L` | Redraw Screen | Clear and redraw the screen | |
| 134 | | `Esc` | Cancel/Close | Close panels, cancel operations | | 131 | | `Esc` | Cancel/Close | Close panels, cancel operations | |
| 135 | | 132 | |
| 136 | --- | 133 | --- |
@@ -146,19 +143,17 @@ Complete keyboard shortcut reference for `fac` editor. |
| 146 | | 143 | |
| 147 | --- | 144 | --- |
| 148 | | 145 | |
| 149 | -## 🌲 File Tree (Fortress Mode) | 146 | +## 🌲 File Tree (Fuss Mode) |
| 150 | | 147 | |
| 151 | | Keybinding | Command | Description | | 148 | | Keybinding | Command | Description | |
| 152 | |------------|---------|-------------| | 149 | |------------|---------|-------------| |
| 153 | -| `Ctrl+Shift+F` | Toggle Tree | Show/hide file tree | | 150 | +| `Ctrl+B` or `F3` | Toggle Tree | Show/hide file tree | |
| 154 | | **In Tree:** | | | | 151 | | **In Tree:** | | | |
| 155 | -| `↑` `↓` or `j` `k` | Navigate | Move selection up/down | | 152 | +| `j` `k` or `↑` `↓` | Navigate | Move to previous/next sibling | |
| 156 | -| `Enter` or `l` | Open/Expand | Open file or expand directory | | 153 | +| `→` / `←` | Enter/Exit | Enter directory or exit to parent | |
| 157 | -| `h` | Collapse | Collapse current directory | | 154 | +| `Enter` or `o` | Open | Open file in editor | |
| 158 | | `Space` | Toggle Expand | Expand/collapse directory | | 155 | | `Space` | Toggle Expand | Expand/collapse directory | |
| 159 | -| `/` | Search Files | Filter files by name | | 156 | +| `?` | Show Hints | Display fuss mode keybindings | |
| 160 | -| `g` | Go to Top | Jump to first item | | | |
| 161 | -| `G` | Go to Bottom | Jump to last item | | | |
| 162 | | `Esc` | Close Tree | Hide file tree | | 157 | | `Esc` | Close Tree | Hide file tree | |
| 163 | | 158 | |
| 164 | --- | 159 | --- |
@@ -167,7 +162,10 @@ Complete keyboard shortcut reference for `fac` editor. |
| 167 | | 162 | |
| 168 | | Keybinding | Command | Description | | 163 | | Keybinding | Command | Description | |
| 169 | |------------|---------|-------------| | 164 | |------------|---------|-------------| |
| 170 | -| `Ctrl+D` | Add Next Match | Add cursor at next match of selection | | 165 | +| `Ctrl+D` | Select Word & Next | Select word under cursor, add cursor at next match | |
| | 166 | +| `Alt+Click` | Add/Remove Cursor | Add or remove cursor at mouse position | |
| | 167 | +| `Ctrl+Alt+↑` | Add Cursor Above | Add cursor on line above | |
| | 168 | +| `Ctrl+Alt+↓` | Add Cursor Below | Add cursor on line below | |
| 171 | | `Esc` | Single Cursor | Return to single cursor mode | | 169 | | `Esc` | Single Cursor | Return to single cursor mode | |
| 172 | | *(while multiple cursors active)* | | | | 170 | | *(while multiple cursors active)* | | | |
| 173 | | Type normally | Edit All | Type at all cursor positions | | 171 | | Type normally | Edit All | Type at all cursor positions | |
@@ -192,25 +190,32 @@ When any panel is open (Diagnostics, References, Symbols, etc.): |
| 192 | ## ⚙️ Special Modes | 190 | ## ⚙️ Special Modes |
| 193 | | 191 | |
| 194 | ### Search/Replace Mode | 192 | ### Search/Replace Mode |
| 195 | -Active when `Ctrl+F` is pressed: | 193 | +Active when `Ctrl+F` (search) or `Ctrl+R` (replace) is pressed: |
| 196 | -- `n` / `Ctrl+N` - Next match | 194 | +- `n` - Next match |
| 197 | -- `N` / `Ctrl+P` - Previous match | 195 | +- `N` - Previous match |
| 198 | -- `r` - Replace current | 196 | +- `Alt+C` - Toggle case sensitive |
| 199 | -- `a` - Replace all | 197 | +- `Alt+W` - Toggle whole word match |
| 200 | -- `Ctrl+R` - Toggle regex | | |
| 201 | -- `Ctrl+C` - Toggle case sensitive | | |
| 202 | -- `Ctrl+W` - Toggle whole word | | |
| 203 | -- `Alt+S` - Search in selection | | |
| 204 | - `↑` / `↓` - Navigate search history | 198 | - `↑` / `↓` - Navigate search history |
| 205 | - `Esc` - Exit search mode | 199 | - `Esc` - Exit search mode |
| 206 | | 200 | |
| 207 | -### Fortress (File Tree) Mode | 201 | +### Fuss (File Tree) Mode |
| 208 | -Active when `Ctrl+Shift+F` is pressed: | 202 | +Active when `Ctrl+B` or `F3` is pressed: |
| 209 | -- `j` / `k` or `↑` / `↓` - Navigate | 203 | +- `j` / `k` - Move to previous/next sibling |
| 210 | -- `Enter` or `l` - Open/Expand | 204 | +- `→` / `←` - Enter directory / exit to parent |
| 211 | -- `h` - Collapse | 205 | +- `Enter` or `o` - Open file |
| 212 | -- `/` - Filter files | 206 | +- `Space` - Toggle expand/collapse |
| 213 | -- `Esc` - Exit Fortress mode | 207 | +- `?` - Show hints |
| | 208 | +- `Esc` - Exit Fuss mode |
| | 209 | + |
| | 210 | +**Git operations in Fuss mode:** |
| | 211 | +- `a` - Stage file |
| | 212 | +- `u` - Unstage file |
| | 213 | +- `d` - Diff file |
| | 214 | +- `m` - Commit with message |
| | 215 | +- `p` - Push to remote |
| | 216 | +- `f` - Fetch from remote |
| | 217 | +- `l` - Pull from remote |
| | 218 | +- `t` - Create and push tag |
| 214 | | 219 | |
| 215 | --- | 220 | --- |
| 216 | | 221 | |
@@ -219,53 +224,55 @@ Active when `Ctrl+Shift+F` is pressed: |
| 219 | ### Keybinding Conflicts | 224 | ### Keybinding Conflicts |
| 220 | - Some keybindings may conflict with terminal emulator shortcuts | 225 | - Some keybindings may conflict with terminal emulator shortcuts |
| 221 | - If a key doesn't work, check your terminal's keyboard settings | 226 | - If a key doesn't work, check your terminal's keyboard settings |
| 222 | -- Common conflicts: `F6` (new terminal tab), `Ctrl+W` (close terminal tab) | 227 | +- Common conflicts: F-keys (media controls), `Ctrl+W` (close terminal tab) |
| | 228 | +- All LSP features have Alt+key alternatives that work better in terminals |
| 223 | | 229 | |
| 224 | -### Customization | 230 | +### Terminal Compatibility |
| 225 | -- Keybindings are currently hardcoded | 231 | +Most terminal emulators don't pass Ctrl+Shift combinations reliably. That's why `fac` uses Alt+key alternatives: |
| 226 | -- Future versions will support custom keybindings | 232 | +- `Alt+E` instead of Ctrl+Shift+D for diagnostics |
| | 233 | +- `Alt+O` instead of Ctrl+Shift+O for document symbols |
| | 234 | +- `Alt+P` instead of Ctrl+Shift+T for workspace symbols |
| | 235 | +- `Alt+R` instead of Ctrl+Shift+R for references |
| 227 | | 236 | |
| 228 | ### Discovering Commands | 237 | ### Discovering Commands |
| 229 | - Use `Ctrl+P` (Command Palette) to see all available commands | 238 | - Use `Ctrl+P` (Command Palette) to see all available commands |
| 230 | -- Commands show their keybindings in the palette | 239 | +- Press `Ctrl+/` or `Ctrl+?` to see the help screen |
| 231 | | 240 | |
| 232 | ### Vim Users | 241 | ### Vim Users |
| 233 | Some vim-style keybindings work: | 242 | Some vim-style keybindings work: |
| 234 | -- `j` / `k` - Up/down in panels | 243 | +- `j` / `k` - Up/down in panels and file tree |
| 235 | -- `g` / `G` - Top/bottom in file tree | 244 | +- `Alt+H/J/K/L` - Navigate between panes |
| 236 | -- `h` / `l` - Collapse/expand in file tree | 245 | +- `o` - Open file in file tree |
| 237 | -- `Ctrl+U` / `Ctrl+D` - Half-page scroll | 246 | +- Navigation in Fuss mode is sibling-based like vim's file explorers |
| 238 | -- `Ctrl+B` / `Ctrl+F` - Full-page scroll | | |
| 239 | -- `%` - Match bracket | | |
| 240 | | 247 | |
| 241 | --- | 248 | --- |
| 242 | | 249 | |
| 243 | ## 🚀 Most Useful Combos | 250 | ## 🚀 Most Useful Combos |
| 244 | | 251 | |
| 245 | **Exploring code:** | 252 | **Exploring code:** |
| 246 | -1. `F6` - Find any symbol in project | 253 | +1. `F6` or `Alt+P` - Find any symbol in project |
| 247 | -2. `F12` - Jump to definition | 254 | +2. `F12` or `Alt+G` - Jump to definition |
| 248 | -3. `Shift+F12` - See all usages | 255 | +3. `Shift+F12` or `Alt+R` - See all usages |
| 249 | 4. `Alt+,` - Jump back | 256 | 4. `Alt+,` - Jump back |
| 250 | | 257 | |
| 251 | **Fixing errors:** | 258 | **Fixing errors:** |
| 252 | -1. `F8` - See all errors | 259 | +1. `F8` or `Alt+E` - See all errors |
| 253 | -2. Navigate to error | 260 | +2. Navigate to error line |
| 254 | -3. `Ctrl+.` - Apply quick fix | 261 | +3. `F10` or `Alt+.` - Apply quick fix |
| 255 | 4. `Ctrl+S` - Save | 262 | 4. `Ctrl+S` - Save |
| 256 | | 263 | |
| 257 | **Refactoring:** | 264 | **Refactoring:** |
| 258 | -1. `Shift+F12` - See all references | 265 | +1. `Shift+F12` or `Alt+R` - See all references |
| 259 | 2. `F2` - Rename everywhere | 266 | 2. `F2` - Rename everywhere |
| 260 | 3. `Shift+Alt+F` - Format code | 267 | 3. `Shift+Alt+F` - Format code |
| 261 | 4. `Ctrl+S` - Save | 268 | 4. `Ctrl+S` - Save |
| 262 | | 269 | |
| 263 | **Working with multiple files:** | 270 | **Working with multiple files:** |
| 264 | -1. `Ctrl+Shift+F` - Browse file tree | 271 | +1. `Ctrl+B` or `F3` - Browse file tree |
| 265 | 2. `Enter` - Open in new tab | 272 | 2. `Enter` - Open in new tab |
| 266 | -3. `Ctrl+Tab` - Switch between tabs | 273 | +3. `Ctrl+PageDown/Up` - Switch between tabs |
| 267 | -4. `Ctrl+\` - Split panes | 274 | +4. `Alt+V` / `Alt+S` - Split panes vertical/horizontal |
| 268 | -5. `Ctrl+H/J/K/L` - Navigate panes | 275 | +5. `Alt+H/J/K/L` - Navigate panes |
| 269 | | 276 | |
| 270 | --- | 277 | --- |
| 271 | | 278 | |