核心目標: 掌握四個操作來中斷、回退、壓縮、清空對話,讓 Claude 在出現誤解或效率下降時,能精確調整對話脈絡。
為什麼需要這些操作?
在長時間的開發過程中,Claude 可能出現以下情況:
- 開始往錯誤方向執行(例如改錯了檔案)
- 對需求的理解逐漸偏離正軌
- 上下文累積過多,導致回應變慢或不準確
- 對話脈絡已經污染到無法恢復
這四個上下文操作指令跟快捷鍵能解決AI失焦的問題。
1. Ctrl+C / Esc — 立即中斷
何時使用
當 Claude 正在執行錯誤的操作 時,不要等它做完,直接按 Ctrl+C 或 Esc 中斷。
典型場景 A:改錯檔案
情境: 你原本要求:
請幫我調整 login API 的錯誤訊息,不要動認證流程。
但 Claude 開始輸出:
我會先重構 AuthService,調整 JWT 驗證邏輯,並修改 TokenProvider...
症狀: 它已經偏離你的需求,準備動認證核心流程,而不只是改錯誤訊息。
動作: 按 Ctrl+C 停止,然後補充:
不要,只改錯誤訊息就好,AuthService 不要動。
典型場景 B:一次做太多,範圍失控
情境: 你問:
幫我看一下這個 Controller 有沒有問題。
但 Claude 回:
我會順便整理 Controller、Service、Repository,並補上 DTO、Mapper、Exception Handler 和測試。
症狀: 原本簡單的 code review 變成全系統重構計畫。
動作: 按 Ctrl+C,重新說明範圍:
先只檢查 Controller,不用做其他優化。
提醒
- 早發現,早中斷 — 一旦發現方向不對,別等著看它做完,直接中斷
- 搭配 Plan Mode — 預先用 Plan Mode 確認任務列表,基本上能避免「範圍失控」
- 中斷後要補字 — Ctrl+C 停下後補充需要澄清正確方向
2. Esc+Esc / Rewind — 回退到歷史對話節點
何時使用
當對話已經走歪、Claude 誤解了需求、或你想 回到某個對話點 時,用 Rewind。
工作原理
Rewind 會:
- 打開對話歷史選單(checkpoint 列表)
- 讓你選擇回退到哪個訊息
- 從那個點開啟 新的對話分支(fork)
- 不改動 你專案裡的實際檔案內容
Rewind 列出了所有可用的對話節點(checkpoint),編號從最早到當前的對話。
當我選擇測試-2對話節點。<此時你可以問是否有測試3,4,5.基本上會回沒有>
對話 Fork 示意
假設你的對話流程是:
① 你:我要做登入功能
② Claude:我建議用 JWT
③ 你:測試1
④ Claude:開始根據「測試1」理解任務
⑤ 你:不是,我其實要 OAuth
⑥ Claude:好,那我改成 OAuth
⑦ 你:再加 Keycloak
⑧ Claude:好,我會整合 Keycloak
如果在第 ⑧ 訊息後,你意識到第 ④ 訊息時 Claude 已經誤解,你可以選擇 Rewind 到第 ③ 訊息之前。
原本對話流程:
① → ② → ③(測試1) → ④ → ⑤ → ⑥ → ⑦ → ⑧
Rewind 後(新分支開啟):
① → ② → ③'(新的第三訊息)
Claude 會「遺忘」第 ④ 到 ⑧ 的所有內容,重新等待你的下一個指示。
Rewind 有三個選項
當你在 Rewind 主選單選定了一個節點,會進入確認畫面:
Restore 選單提供三個選擇,各有不同效果。
選項 1:Restore conversation
- 還原 對話內容和檔案變更
- 就像時間回溯,對話回到那個時間點,已經修改過的檔案不會被還原
- 場景: Claude 對需求理解走偏,但你想保留目前檔案內容,只想讓對話脈絡回到乾淨狀態。例如幫我把登入失敗時的錯誤訊息調整得更清楚,不要動驗證流程。
選項 2:Summarize from here
- 只還原 對話脈絡,不改程式碼
- Claude 會產生一份「對話摘要」,包含:
- 你的原始需求(Primary Request)
- 關鍵技術概念(Key Technical Concepts)
- 涉及的檔案列表(Files)
- 遇過的錯誤(Errors)
- 問題解決過程(Problem Solving)
- 所有使用者訊息(All user messages)
- 待辦任務(Pending Tasks)
- 當前工作狀態(Current Work)
Summarize from here 選項有助於保留核心理解,同時開啟新分支。
摘要內容詳細,方便你快速把握對話核心,避免重新重複。
選項 3:Never mind
- 取消 Rewind 操作,維持現在狀態
- 當你按錯了或改變主意,用這個選項回到原對話
選擇 Never mind 會取消 Rewind,對話和檔案都維持不變。
Rewind 實戰範例
使用者在終端機送出訊息,Claude 記錄每一次互動。
假設你想驗證 Claude 的記憶,可以問:
我有說過「測試5」嗎?
Claude 正確回答「沒有」,表示它準確追蹤了對話歷史。
Rewind 的重點總結
| 特性 | 說明 |
|---|---|
| 對話狀態 | Fork 成新分支,舊分支保留但不會用 |
| 程式碼檔案 | 除非選 Restore conversation,否則不變 |
| 上下文 | Summarize 會幫你保留核心內容,避免重複 |
| 何時用 | 對話誤解、需求澄清、想回到乾淨決策點 |
💡 提示: Summarize from here 是最常用的選擇,它既能保留核心理解,又能開啟新分支不被舊對話污染。
3. /compact — 壓縮上下文
何時使用
當對話變得 很長 但你仍想 保留任務理解 時,用 /compact 來壓縮上下文。
工作原理
/compact 會:
- 將過往對話和細節壓縮成摘要
- 保留核心任務理解、關鍵決策、已修改檔案列表
- 刪除冗餘細節(例如多次嘗試的失敗記錄)
- 不建立新分支,而是在原對話上進行壓縮
適用場景
- 對話已經進行 50+ 訊息,但核心任務還沒完成
- Claude 的回應開始變慢(因為上下文過長)
- 你想「清理雜訊」但不想 fork 對話
- 比 Rewind 更溫和的「上下文清理」
與 Rewind 的差異
| 操作 | 是否建立新分支 | 檔案變更 | 何時用 |
|---|---|---|---|
| Rewind | 是(fork) | Summarize 不改 | 對話已誤解,需要重來 |
| /compact | 否 | 維持原狀 | 對話太長,但方向正確 |
⚠️ 注意:
/compact適合「同一任務進度長對話」,Rewind 適合「對話方向有誤」。
4. /clear — 徹底清空對話
何時使用
當 對話脈絡已經太髒、無法修復或無須保留時,直接 /clear 全新重開。
工作原理
/clear 會:
- 刪除所有對話歷史
- 重置上下文
- 保留 專案檔案內容(程式碼不變)
- 完全重新開始,就像開啟一個新 Claude Code 工作階段
適用場景
- 對話路線分岔太多,無法用 Rewind 修復
- 上下文已經「污染」到無法信任 Claude 的理解
- 想在同一專案上換個新的對話軌跡
- /compact 無法解決的「上下文混亂」
與 /compact 的差異
| 操作 | 保留內容 | 新增複雜度 |
|---|---|---|
| /compact | 對話摘要 + 上下文 | 仍有壓縮記憶 |
| /clear | 無(完全重開) | 無(乾淨重開) |
決策流程表
用這個表來快速判斷該用哪個操作:
| 症狀 | 應該用... | 原因 |
|---|---|---|
| 正在執行錯誤操作(改錯檔案、超出範圍) | Ctrl+C | 立即停止,最快的中斷方式 |
| 對話已經走歪,但程式碼還沒改太多 | Rewind + Summarize | Fork 新分支,保留核心理解 |
| 對話很長但方向正確,只是上下文太長 | /compact | 壓縮雜訊,加快回應速度 |
| 對話脈絡徹底混亂,無法修復 | /clear | 完全重開,最激進的方案 |
常見決策樹
1. Claude 正在做壞事嗎?
├─ 是 → Ctrl+C(停下來)
└─ 否 → 進入 2
2. 對話方向還對嗎?
├─ 不對 → Rewind(回到乾淨點)
└─ 還可以 → 進入 3
3. 對話太長了嗎?
├─ 是,但方向對 → /compact(壓縮)
├─ 是,完全亂了 → /clear(重開)
└─ 不長 → 繼續對話
小結
掌握這四個操作,你就有了「對話意圖調整工具箱」:
| 工具 | 速度 | 保留程度 | 複雜度 |
|---|---|---|---|
| Ctrl+C | 最快 | 保留一切 | 最簡單 |
| Rewind | 快 | 可選(Fork) | 中等 |
| /compact | 中 | 保留摘要 | 中等 |
| /clear | 慢 | 刪除全部 | 最簡單 |
核心心法:
- 問題越早發現越好用 Ctrl+C
- 想保留過程就用 Rewind
- 想加速就用 /compact
- 完全重開就用 /clear
習慣這四個操作,你會發現跟 Claude 的對話品質會大幅提升,因為你能在出錯時迅速調整方向,而不是被迫與誤解的 AI 繼續糾纏。