# Module 2: Keyboard Shortcuts

## Navigation & Editing

| Shortcut | Action |
|----------|--------|
| `@` | Mention files — include their contents as context |
| `Ctrl+S` | Submit prompt while preserving input text |
| `Shift+Tab` | Cycle modes: Interactive → Plan |
| `Ctrl+T` | Toggle model reasoning display |
| `Ctrl+O` | Expand recent timeline (when no input) |
| `Ctrl+E` | Expand all timeline (when no input) / move to end of line (when typing) |
| `↑` `↓` | Navigate command history |
| `!` | Execute shell command directly (bypass AI) |
| `Esc` | Cancel current operation |
| `Ctrl+C` | Cancel operation / clear input / exit |
| `Ctrl+D` | Shutdown session |
| `Ctrl+L` | Clear the screen |
| `Ctrl+G` | Edit prompt in external editor ($EDITOR) |

## Line Editing

| Shortcut | Action |
|----------|--------|
| `Ctrl+A` | Move to beginning of line |
| `Ctrl+H` | Delete previous character |
| `Ctrl+W` | Delete previous word |
| `Ctrl+U` | Delete from cursor to beginning of line |
| `Ctrl+K` | Delete from cursor to end of line |
| `Meta+←` `Meta+→` | Move cursor by word |

## Pro tips to teach

- `@` is THE most important shortcut — it's how you give precise context
- `!git status` runs git directly without AI processing
- `Shift+Tab` into Plan mode BEFORE complex tasks
- `Ctrl+G` opens your $EDITOR for long prompts — game changer
- `Ctrl+S` lets you iterate on a prompt without retyping
