介面和互動方式
Claude Code採用命令列介面(CLI),看起來不如圖形介面直觀,但提供了更高效、更靈活的互動方式。今天講解介面組成、各種互動方式,以及如何高效使用終端進行AI程式設計。
CLI介面詳解
啟動介面
啟動Claude Code時,會看到歡迎介面:
╔════════════════════════════════════════════╗
║ ║
║ Welcome to Claude Code (Beta) ║
║ ║
║ Your AI-powered coding assistant ║
║ ║
╚════════════════════════════════════════════╝
Connected to: claude-3-7-sonnet-20250219
Working directory: /Users/username/my-project
Session ID: abc123def456
How can I help you code today?
>
介面包含:
- 歡迎資訊:確認工具已成功啟動
- 模型版本:當前使用的Claude模型
- 工作目錄:Claude Code的操作範圍
- 會話ID:用於追蹤和除錯
- 輸入提示符:
>表示準備接收你的指令
主要介面元素
1. 輸入提示符
> # 等待用户输入
> _ # 光标闪烁,可以输入
提示符的不同狀態:
>- 空閒,等待輸入⟳- 處理中✓- 完成✗- 出錯
2. 輸出區域
Claude的回覆會清晰地顯示在終端中:
I'll help you create that function.
📝 Creating: utils/helper.js
───────────────────────────────────────────
✓ File created successfully
Would you like me to add tests for this function?
>
3. 工具呼叫顯示
Claude使用工具時,會實時顯示:
🔍 Reading: src/components/Header.js
🔍 Reading: src/components/Footer.js
✏️ Editing: src/components/Header.js
✓ Edit completed
Updated the Header component with the new logo.
>
4. 進度指示器
耗時操作會顯示進度:
⟳ Analyzing codebase...
⟳ Found 143 files
⟳ Searching for references...
⟳ Processing...
✓ Analysis complete (3.2s)
>
介面配置
Claude Code支援介面自定義:
# 启用详细模式(显示更多调试信息)
claude --verbose
# 紧凑模式(减少输出)
claude --compact
# 禁用颜色输出
claude --no-color
# 禁用Unicode字符(如果终端不支持)
claude --no-unicode
在 ~/.claude/config.json 中儲存配置:
{
"ui": {
"verbose": false,
"compact": false,
"colors": true,
"unicode": true,
"showToolCalls": true,
"animatedSpinner": true
}
}
基礎互動方式
1. 自然語言對話
Claude Code最大的優勢就是可以用自然語言互動:
> 创建一个React组件,用于显示用户信息
I'll create a React component for displaying user information.
📝 Creating: src/components/UserInfo.jsx
...
技巧:
- 像和人對話一樣自然表達
- 可以使用中文或英文
- 可以隨時追問或補充
2. 命令式指令
明確的操作,可以使用命令式語言:
> 读取package.json文件
> 修改README.md,添加安装说明
> 运行npm test
> 格式化所有JavaScript文件
3. 多行輸入
複雜需求,可以使用多行輸入:
按 Shift + Enter 換行,輸入完成後按 Enter 傳送:
> 请帮我重构这个函数:
1. 提取重复代码
2. 添加错误处理
3. 改进变量命名
4. 添加JSDoc注释
代码在 src/utils/data.js 的 processData 函数
4. 引用程式碼
可以直接貼上程式碼讓Claude分析:
> 帮我优化这段代码:
```javascript
function getData(id) {
fetch('/api/users/' + id)
.then(res => res.json())
.then(data => console.log(data))
}
What improvements would you suggest?
### 5. 上下文引用
Claude會記住對話歷史,可以直接引用:
创建一个User类
✓ Created User class in models/User.js
给它添加一个验证email的方法
✓ Added validateEmail method to User class
再添加一个静态方法用于从数据库查找用户
✓ Added static findById method
## 快捷鍵和命令
### 終端快捷鍵
在Claude Code中可以使用標準終端快捷鍵:
**編輯快捷鍵:**
- `Ctrl + A` - 移到行首
- `Ctrl + E` - 移到行尾
- `Ctrl + U` - 刪除游標前的所有內容
- `Ctrl + K` - 刪除游標後的所有內容
- `Ctrl + W` - 刪除前一個單詞
- `Ctrl + L` - 清屏
**導航快捷鍵:**
- `↑` / `↓` - 瀏覽歷史命令
- `Ctrl + R` - 搜尋歷史命令
- `Tab` - 自動補全(如果支援)
**控制快捷鍵:**
- `Ctrl + C` - 中斷當前操作
- `Ctrl + D` - 退出Claude Code
- `Ctrl + Z` - 暫停(後臺執行)
### Slash命令
Claude Code內建了Slash命令系統,輸入 `/` 檢視所有命令:
/help
Available Commands: ───────────────────────────────────────── /help - Show this help message /history - View conversation history /clear - Clear current conversation /save - Save conversation to file /load - Load conversation from file /status - Show session status /model - Switch AI model /think - Enable extended thinking /exit - Exit Claude Code ─────────────────────────────────────────
Type /command for more details
#### 常用Slash命令詳解
**1. /history - 檢視對話歷史**
/history
Session History (15 messages) ─────────────────────────────────────────
- You: 创建一个Express服务器
- Claude: Created server.js with Express setup
- You: 添加用户认证
- Claude: Added JWT authentication ... ─────────────────────────────────────────
Use /history [n] to see details of message n
**2. /clear - 清空對話**
/clear
⚠️ This will clear the conversation history. Continue? (y/n): y
✓ Conversation cleared ✓ Starting fresh session
**3. /save - 儲存對話**
/save conversation-20250219.json
✓ Conversation saved to: ~/my-project/.claude/conversation-20250219.json
Contains:
- 24 messages
- 3 file edits
- 5 tool calls
**4. /load - 載入對話**
/load conversation-20250219.json
✓ Conversation loaded (24 messages) ✓ Context restored
You can continue from where you left off.
**5. /status - 檢視狀態**
/status
Session Status ───────────────────────────────────────── Session ID: abc123def456 Model: claude-3-7-sonnet-20250219 Working Dir: /Users/username/my-project Messages: 24 Tokens Used: ~12,500 / 200,000 Files Modified: 7 Uptime: 1h 23m ─────────────────────────────────────────
**6. /model - 切換模型**
/model
Available Models: ───────────────────────────────────────── • claude-3-7-sonnet-20250219 (Current) Fast, balanced, recommended
• claude-opus-4-5-20251101 Most capable, slower, higher cost
• claude-3-5-haiku-20241022 Fastest, good for simple tasks ─────────────────────────────────────────
Switch to: opus
✓ Switched to claude-opus-4-5-20251101
**7. /think - 啟用深度思考**
/think
Extended thinking mode enabled.
Claude will now: ✓ Show reasoning process ✓ Take more time to analyze ✓ Provide more detailed responses
Use /think off to disable.
## 輸出結果解讀
### 結果格式
Claude的輸出遵循清晰的格式:
```text
[文字说明]
[工具调用]
📝 Creating: file.js
🔍 Reading: file.js
✏️ Editing: file.js
🔨 Running: npm test
[结果展示]
✓ Success message
✗ Error message
⚠️ Warning message
ℹ️ Info message
[代码块]
───────────────────────────────────────────
function example() {
return "code here";
}
───────────────────────────────────────────
[后续问题/建议]
>
圖示含義
Claude Code使用圖示增強可讀性:
操作圖示:
- 📝 Creating - 建立檔案
- 🔍 Reading - 讀取檔案
- ✏️ Editing - 編輯檔案
- 🗑️ Deleting - 刪除檔案
- 🔨 Running - 執行命令
- 📊 Analyzing - 分析程式碼
狀態圖示:
- ✓ Success - 成功
- ✗ Error - 錯誤
- ⚠️ Warning - 警告
- ℹ️ Info - 資訊
- ⟳ Processing - 處理中
- 🔍 Searching - 搜尋中
功能圖示:
- 💡 Tip - 提示
- 📚 Reference - 參考
- 🎯 Target - 目標
- 🔧 Config - 配置
- 📦 Package - 包/模組
理解工具呼叫
當Claude執行操作時,會顯示工具呼叫:
> 帮我重构这个函数
Let me analyze the code first.
🔍 Reading: src/utils/parser.js [1/1]
───────────────────────────────────────────
I can see the function. Let me refactor it.
✏️ Editing: src/utils/parser.js [1/1]
───────────────────────────────────────────
✓ Refactoring complete
Changes made:
• Extracted helper function
• Added error handling
• Improved naming
• Added type hints
>
進度指示: [1/1] 表示當前操作和總運算元
錯誤資訊處理
Claude會清晰地報告錯誤:
> 运行测试
🔨 Running: npm test
───────────────────────────────────────────
✗ Command failed (exit code 1)
Error output:
FAIL tests/api.test.js
✓ GET /users (32ms)
✗ POST /users (15ms)
Expected: 201
Received: 500
───────────────────────────────────────────
I found the issue. The test is failing because...
Would you like me to fix this?
>
高效使用技巧
1. 善用Tab補全
終端支援的話,可以使用Tab補全:
> /his[Tab] → /history
> /mod[Tab] → /model
2. 歷史命令複用
使用 ↑ 鍵瀏覽之前的輸入:
> 创建一个API端点
> [上箭头] → 看到之前的命令
> [编辑] 创建一个API端点用于获取用户列表
3. 快速清屏
保持介面整潔:
> [Ctrl + L] # 清除屏幕但保留对话
> /clear # 清除对话历史
4. 中斷長響應
Claude的回覆太長或方向不對:
> [Ctrl + C] # 中断当前响应
Operation cancelled.
>
5. 分屏工作
建議使用終端分屏:
# 使用tmux
tmux new -s coding
# Ctrl+B 然后 " 分割屏幕
# 上面运行Claude Code
# 下面运行测试或查看文件
# 或使用iTerm2/Windows Terminal的分屏功能
6. 結合其他終端工具
Claude Code和其他工具配合:
# 终端1: Claude Code
claude
# 终端2: 观察文件变化
watch -n 1 ls -la
# 终端3: 实时运行
npm run dev
# 终端4: Git操作
git status
多輪對話管理
對話策略
漸進式構建:
第一轮:
> 创建一个博客系统的数据模型
第二轮:
> 添加文章分类功能
第三轮:
> 添加标签系统
第四轮:
> 实现文章和标签的多对多关系
上下文維持:
Claude會記住之前的內容:
> 创建一个User类
✓ Created
> 给它添加密码加密
✓ Added encryption
> 使用bcrypt库
✓ Updated to use bcrypt
> 添加密码验证方法
✓ Added comparePassword method
會話管理
長會話管理:
> /status
Tokens Used: 150,000 / 200,000
当接近限制时:
> /save important-work.json
✓ Saved
> /clear
✓ Cleared
> /load important-work.json
✓ Loaded (保留重要上下文)
定期儲存:
# 每完成一个重要功能就保存
> /save feature-auth-complete.json
> /save feature-api-complete.json
> /save feature-frontend-complete.json
分主題對話
為不同任務建立不同會話:
# 会话1:后端开发
cd backend && claude
# 会话2:前端开发
cd frontend && claude
# 会话3:测试
cd tests && claude
終端配置最佳化
推薦終端
macOS:
- iTerm2(推薦)
- Warp
- Hyper
- 系統自帶Terminal
Windows:
- Windows Terminal(推薦)
- ConEmu
- Cmder
Linux:
- Terminator
- Tilix
- Alacritty
- GNOME Terminal
終端美化
1. 配置Shell
使用現代Shell提升體驗:
# 安装oh-my-zsh
sh -c "$(curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
# 推荐主题
ZSH_THEME="powerlevel10k/powerlevel10k"
# 推荐插件
plugins=(
git
zsh-autosuggestions
zsh-syntax-highlighting
history-substring-search
)
2. 字型配置
使用等寬字型以獲得最佳顯示:
推薦字型:
- Fira Code
- JetBrains Mono
- Cascadia Code
- Monaco
3. 顏色主題
選擇護眼的顏色主題:
- Solarized Dark
- Dracula
- Nord
- One Dark
Claude Code專用配置
建立別名簡化操作:
# 添加到 ~/.zshrc 或 ~/.bashrc
# 快速启动
alias c="claude"
# 在特定目录启动
alias cwork="cd ~/work && claude"
alias cproj="cd ~/projects && claude"
# 启用深度思考
alias cthink="claude --think"
# 详细模式
alias cv="claude --verbose"
實戰案例
案例1:專案初始化
完整的專案設定對話:
> 初始化一个Express + TypeScript项目
I'll set up an Express TypeScript project for you.
📝 Creating: package.json
📝 Creating: tsconfig.json
📝 Creating: src/index.ts
📝 Creating: .gitignore
📝 Creating: .env.example
✓ Project structure created
> 安装依赖
🔨 Running: npm install express typescript @types/express @types/node ts-node
✓ Dependencies installed
> 添加开发脚本
✏️ Editing: package.json
✓ Added scripts:
- npm run dev: Development server
- npm run build: Production build
- npm start: Run built files
> 创建一个健康检查路由
📝 Creating: src/routes/health.ts
✏️ Editing: src/index.ts
✓ Health check route added
GET /health returns {status: "ok"}
> 添加环境变量支持
🔨 Running: npm install dotenv
📝 Creating: src/config/env.ts
✏️ Editing: src/index.ts
✓ Environment configuration added
Project is ready! Run: npm run dev
>
案例2:除錯會話
問題排查和修復:
> 运行测试报错了
🔨 Running: npm test
✗ Error: Cannot find module 'utils/helper'
Let me investigate...
🔍 Reading: tests/api.test.js
🔍 Reading: src/utils/
🔍 Searching: import.*helper
Found the issue:
- Test imports from 'utils/helper'
- But file is at 'src/utils/helper'
- Import path is incorrect
> 修复它
✏️ Editing: tests/api.test.js
✓ Fixed import path
🔨 Running: npm test
✓ All tests passed (12/12)
>
案例3:程式碼審查
請求程式碼審查和改進:
> 审查 src/auth/login.js 并提供改进建议
🔍 Reading: src/auth/login.js
📊 Code Review Report
───────────────────────────────────────────
✓ Strengths:
• Good error handling
• Proper password hashing
• Token generation works
⚠️ Issues Found:
1. Security Issue (High)
Line 23: Password comparison not timing-safe
Risk: Timing attacks possible
2. Missing Validation (Medium)
Line 15: No email format validation
Risk: Invalid emails could be processed
3. Code Smell (Low)
Line 30-45: Duplicated error handling
Suggestion: Extract to helper function
───────────────────────────────────────────
Would you like me to fix these issues?
> 是的,请修复
✏️ Editing: src/auth/login.js
✓ Security issue fixed
• Using crypto.timingSafeEqual
✓ Added email validation
• Using validator.isEmail
✓ Refactored error handling
• Extracted handleAuthError helper
All issues resolved!
>
常見問題解答
Q1: 終端不支援Unicode字元怎麼辦?
# 使用ASCII模式
claude --no-unicode
# 或在配置文件中设置
{
"ui": {
"unicode": false
}
}
Q2: 如何檢視完整的工具呼叫細節?
# 启用详细模式
claude --verbose
# 或在对话中
> /verbose on
Q3: 輸出太多,如何精簡?
# 紧凑模式
claude --compact
# 或禁用工具调用显示
{
"ui": {
"showToolCalls": false
}
}
Q4: 可以自定義提示符嗎?
{
"ui": {
"prompt": "claude> ",
"thinkingPrompt": "🤔 ",
"successPrompt": "✓ "
}
}
Q5: 如何在Claude回覆時暫停?
使用 Ctrl + S 暫停輸出,Ctrl + Q 繼續(部分終端支援)
Q6: 支援滑鼠操作嗎?
現代終端(如iTerm2、Windows Terminal)支援滑鼠:
- 選擇文字複製
- 滾動檢視歷史
- 點選連結(如果有)
Q7: 如何處理很長的輸出?
# 方法1: 使用less分页器
claude | less
# 方法2: 保存到文件
> /save-output result.txt
# 方法3: 要求Claude精简
> 请用简洁的方式总结
介面高階技巧
1. 輸出重定向
# 保存对话到文件
claude > session.log
# 只保存错误
claude 2> errors.log
# 保存所有输出
claude &> all.log
2. 管道配合
# 从文件读取指令
cat instructions.txt | claude
# 处理输出
claude | grep "Error" | wc -l
3. 指令碼自動化
#!/bin/bash
# auto-review.sh
echo "分析项目结构" | claude
echo "检查代码质量" | claude
echo "生成改进报告" | claude
4. 會話錄製
# 使用script命令录制
script -a session.log
claude
# ... 进行操作 ...
exit # 退出script
# 回放
scriptreplay session.log
最佳實踐總結
介面使用建議
-
保持整潔
- 定期使用
/clear清理不需要的對話 - 使用
Ctrl+L清屏保持視野清晰
- 定期使用
-
善用歷史
↑/↓快速重用命令/history回顧對話上下文
-
及時儲存
- 重要會話使用
/save儲存 - 為儲存檔案使用描述性名稱
- 重要會話使用
-
合理分屏
- Claude Code在一個視窗
- 程式碼編輯器在另一個視窗
- 測試/日誌在第三個視窗
-
配置最佳化
- 選擇合適的終端和字型
- 調整顏色主題護眼
- 配置快捷鍵提高效率
互動技巧總結
-
清晰表達
- 描述要做什麼,而不僅是怎麼做
- 提供必要的上下文
- 一次專注一個任務
-
漸進式對話
- 從簡單開始,逐步完善
- 每一步驗證結果
- 及時反饋和調整
-
利用上下文
- Claude記住對話歷史
- 可以引用之前的內容
- "它"、"那個檔案"等都能理解
-
主動引導
- 遇到問題及時說明
- 不滿意就要求重做
- 提出具體的改進要求
參考資源
下一步
掌握了介面和互動方式後:
熟練使用Claude Code的介面和互動方式,將讓你的AI程式設計效率倍增!