Initial commit

This commit is contained in:
Zhongwei Li
2025-11-30 08:51:29 +08:00
commit 4f7c98dd9c
24 changed files with 5134 additions and 0 deletions

View File

@@ -0,0 +1,438 @@
---
name: interactive-mode
description: Interactive mode features including keyboard shortcuts, vim mode, command history, and background tasks. Use when user asks about REPL, keyboard shortcuts, interactive features, or vim mode.
---
# Claude Code Interactive Mode
## Overview
Interactive mode provides a rich REPL (Read-Eval-Print Loop) environment with keyboard shortcuts, command history, vim editing, and background task management.
## Keyboard Controls
### Essential Shortcuts
| Shortcut | Action |
|----------|--------|
| `Ctrl+C` | Cancel current input or generation |
| `Ctrl+D` | Exit the Claude Code session |
| `Ctrl+L` | Clear terminal screen (preserves conversation history) |
| `Ctrl+O` | Toggle verbose output (shows detailed tool usage) |
| `Ctrl+R` | Search backwards through command history |
| `Ctrl+B` | Move bash invocation to background |
| `Tab` | Switch extended thinking on and off |
### Navigation
| Shortcut | Action |
|----------|--------|
| `↑`/`↓` | Navigate through command history |
| `←`/`→` | Move cursor left/right |
| `Home` | Move to start of line |
| `End` | Move to end of line |
### Help
| Shortcut | Action |
|----------|--------|
| `?` | Show help and shortcuts |
## Multiline Input Methods
Claude Code supports several ways to create multiline inputs:
### Universal Method
```
Line 1 \
Line 2 \
Line 3
```
**Backslash + Enter** works universally across all platforms.
### macOS Default
```
Option+Enter
```
**Option+Enter** creates a newline on macOS.
### After Terminal Setup
```
Shift+Enter
```
**Shift+Enter** functions after running `/terminal-setup`.
## Vim Editor Mode
### Enabling Vim Mode
**Temporary (current session):**
```
/vim
```
**Permanent:**
```
/config
```
Then enable vim mode in configuration.
### Vim Navigation
**Movement:**
- `h` - Move left
- `j` - Move down
- `k` - Move up
- `l` - Move right
- `w` - Move forward one word
- `e` - Move to end of word
- `b` - Move backward one word
- `0` - Move to start of line
- `$` - Move to end of line
**Editing:**
- `i` - Insert mode
- `a` - Append (insert after cursor)
- `A` - Append at end of line
- `I` - Insert at start of line
- `x` - Delete character
- `dd` - Delete line
- `d$` - Delete to end of line
- `d0` - Delete to start of line
- `dw` - Delete word
- `.` - Repeat last operation
**Modes:**
- `Esc` - Return to normal mode
- `i` - Enter insert mode
## Command History & Search
### Command History
**Navigation:**
- `↑` - Previous command
- `↓` - Next command
**Organization:**
Session history is organized by working directory for better context.
### Search History
**Backward search:**
1. Press `Ctrl+R`
2. Type search term
3. Press `Ctrl+R` again to cycle through matches
4. Press `Enter` to execute
5. Press `Esc` to cancel
**Features:**
- Displays matching commands
- Highlights search terms
- Allows cycling through multiple matches
## Background Task Execution
### Overview
When Claude Code runs a command in the background, it runs the command asynchronously and immediately returns a background task ID.
### Trigger Background Execution
**Automatic:**
Claude may prompt to background long-running tasks.
**Manual:**
Press `Ctrl+B` to move regular bash invocations to the background.
### Managing Background Tasks
**View output:**
Output is buffered and can be retrieved later.
**Monitor tasks:**
Claude shows status updates for background tasks.
**Continue working:**
You can interact with Claude while background tasks run.
## Quick Command Prefixes
### Special Prefixes
| Prefix | Purpose | Example |
|--------|---------|---------|
| `#` | Add content to CLAUDE.md memory | `# Use 2-space indentation` |
| `/` | Trigger slash commands | `/help` |
| `!` | Direct bash execution (no Claude interpretation) | `!ls -la` |
| `@` | File path autocomplete | `@src/` + Tab |
### Memory Shortcut (`#`)
**Add to memory:**
```
# Always use TypeScript strict mode
```
Claude will prompt you to select the target memory file:
- Project memory (`.claude/CLAUDE.md`)
- User memory (`~/.claude/CLAUDE.md`)
### Direct Bash (`!`)
**Execute without interpretation:**
```
!git status
!npm test
!echo "Hello"
```
Benefits:
- Faster execution
- No AI interpretation overhead
- Direct command output
### File Autocomplete (`@`)
**Trigger autocomplete:**
```
@src/
```
Press `Tab` to see file suggestions.
**Attach files to conversation:**
```
Review @src/components/Button.tsx for issues
```
## Advanced Features
### Extended Thinking
**Toggle extended thinking:**
Press `Tab` to enable/disable.
**What it does:**
- Allows Claude more thinking time
- Better for complex reasoning
- Uses more tokens
- Shows thinking process in verbose mode
### Verbose Output
**Toggle verbose mode:**
Press `Ctrl+O`
**What it shows:**
- Detailed tool usage
- API calls and responses
- Token usage
- Performance metrics
- Debugging information
### Screen Management
**Clear screen:**
Press `Ctrl+L` to clear the terminal while preserving conversation history.
**Difference from `/clear`:**
- `Ctrl+L`: Clears screen only (visual)
- `/clear`: Clears conversation history (context)
## Session Management
### Exit Session
**Clean exit:**
Press `Ctrl+D` or type `/exit`
**Force exit:**
Press `Ctrl+C` multiple times
### Interrupting Operations
**Cancel current operation:**
Press `Ctrl+C` once
**Common scenarios:**
- Long-running AI generation
- Bash command execution
- File operations
- Web searches
## Tips & Tricks
### Efficient Navigation
**Quick history access:**
```
↑ # Previous command
↑↑ # Two commands back
```
**Search specific commands:**
```
Ctrl+R "test" # Find commands with "test"
```
### Productive Workflows
**Background long tasks:**
```
# Long-running test suite
Ctrl+B to background it
Continue working on other tasks
```
**Quick iterations:**
```
↑ # Recall last command
# Edit slightly
Enter # Execute modified version
```
**Memory building:**
```
# Use snake_case for variables
# Prefer composition over inheritance
# Write tests for all public APIs
```
### Vim Mode Power Users
**Fast editing:**
```
Esc # Normal mode
0 # Start of line
d$ # Delete to end
i # Insert mode
Type new content
Esc # Back to normal
```
**Quick fixes:**
```
Esc # Normal mode
$ # End of line
x # Delete last character
a # Append
Type correction
```
## Customization
### Configure Terminal
**Run setup:**
```
/terminal-setup
```
**What it configures:**
- Multiline input behavior
- Key bindings
- Shell integration
- Terminal compatibility
### Configure Settings
**Access configuration:**
```
/config
```
**Available settings:**
- Vim mode enable/disable
- Diff viewer preferences
- Permission defaults
- Output preferences
## Common Workflows
### Exploratory Development
```
# Ask questions
"explain the authentication flow"
# Make changes
"add rate limiting"
# Test
!npm test
# Adjust
↑ to recall, modify, retry
```
### Debugging Session
```
# Enable verbose
Ctrl+O
# Run with details
"analyze the memory leak"
# Review verbose output
# Identify issue
# Fix
# Disable verbose
Ctrl+O
```
### Batch Operations
```
# Background first task
"run full test suite" → Ctrl+B
# Continue with other work
"refactor user module"
# Check background task
# Complete when done
```
## Integration with Shell
### Command History Persistence
Claude Code integrates with your shell's command history, allowing you to:
- Access Claude commands in shell history
- Use shell history search (Ctrl+R)
- Mix Claude commands with regular shell commands
### Shell Compatibility
Works with:
- Bash
- Zsh
- Fish
- Other POSIX-compatible shells
### Environment Integration
Claude Code respects:
- Shell environment variables
- Shell aliases
- Shell functions
- Current working directory
## Accessibility
### Screen Reader Support
Claude Code works with screen readers for:
- Command input
- Output reading
- Navigation
### Keyboard-only Navigation
All features accessible via keyboard:
- No mouse required
- Full keyboard navigation
- Comprehensive shortcuts