全螢幕渲染
啟用更平順、無閃爍的渲染模式,具有滑鼠支援和穩定的記憶體使用,適用於長對話。
全螢幕渲染是一個選擇加入的研究預覽,需要 Claude Code v2.1.89 或更新版本。在您目前的對話中執行 /tui fullscreen 以切換,或在 v2.1.110 之前的版本上設定 CLAUDE_CODE_NO_FLICKER=1。行為可能會根據回饋而改變。
全螢幕渲染是 Claude Code CLI 的替代渲染路徑,可消除閃爍、在長對話中保持記憶體使用平穩,並新增滑鼠支援。它在終端的替代螢幕緩衝區上繪製介面,就像 vim 或 htop 一樣,並且只渲染目前可見的訊息。這減少了每次更新時傳送到終端的資料量。
在渲染吞吐量是瓶頸的終端模擬器中,差異最為明顯,例如 VS Code 整合終端、tmux 和 iTerm2。如果您的終端捲動位置在 Claude 工作時跳到頂部,或者工具輸出串流進來時螢幕閃爍,此模式可以解決這些問題。
全螢幕一詞描述的是 Claude Code 如何接管終端的繪製表面,就像 vim 一樣。它與最大化終端視窗無關,並且在任何視窗大小下都能運作。
啟用全螢幕渲染
在任何 Claude Code 對話中執行 /tui fullscreen。CLI 會儲存 tui 設定並重新啟動進入全螢幕模式,您的對話保持完整,因此您可以在工作階段中途切換而不會失去上下文。執行 /tui 不帶任何引數以列印哪個渲染器處於活動狀態。
您也可以在啟動 Claude Code 之前設定 CLAUDE_CODE_NO_FLICKER 環境變數:
CLAUDE_CODE_NO_FLICKER=1 claude
tui 設定和環境變數是等效的。/tui 命令會從重新啟動的程序中清除 CLAUDE_CODE_NO_FLICKER,以便它寫入的設定生效。
變更內容
全螢幕渲染改變了 CLI 如何繪製到您的終端。輸入框保持固定在螢幕底部,而不是在輸出串流進來時移動。如果輸入在 Claude 工作時保持不動,則全螢幕渲染處於活動狀態。只有可見的訊息保留在渲染樹中,因此無論對話長度如何,記憶體都保持恆定。
因為對話存在於替代螢幕緩衝區而不是終端的捲動回溯,所以有幾件事的運作方式不同:
| 之前 | 現在 | 詳細資訊 |
|---|---|---|
Cmd+f 或 tmux 搜尋來尋找文字 |
Ctrl+o 進入文字記錄模式,然後 / 搜尋或 [ 寫入捲動回溯 |
搜尋和檢閱對話 |
| 終端的原生點擊並拖曳來選擇和複製 | 應用程式內選擇,在滑鼠釋放時自動複製 | 使用滑鼠 |
Cmd 點擊來開啟 URL |
點擊 URL | 使用滑鼠 |
如果滑鼠捕捉干擾您的工作流程,您可以關閉它,同時保持無閃爍渲染。
使用滑鼠
全螢幕渲染捕捉滑鼠事件並在 Claude Code 內處理它們:
- 在提示輸入中點擊以在您輸入的文字中的任何位置定位游標。
- 點擊摺疊的工具結果以展開它並查看完整輸出。再次點擊以摺疊。工具呼叫及其結果一起展開。只有有更多內容要顯示的訊息才可點擊。
- 點擊 URL 或檔案路徑以開啟它。工具輸出中的檔案路徑(例如在 Edit 或 Write 後列印的路徑)在您的預設應用程式中開啟。純
http://和https://URL 在您的瀏覽器中開啟。在大多數終端中,這會取代原生Cmd點擊或Ctrl點擊,滑鼠捕捉會攔截這些。在 VS Code 整合終端和類似的基於 xterm.js 的終端中,繼續使用Cmd點擊。Claude Code 在那裡遵從終端自己的連結處理程式,以避免連結開啟兩次。 - 點擊並拖曳以在對話中的任何位置選擇文字。雙擊選擇一個單詞,符合 iTerm2 的單詞邊界,因此檔案路徑選擇為一個單位。三擊選擇該行。
- 使用滑鼠滾輪捲動以在對話中移動。
選定的文字在滑鼠釋放時自動複製到您的剪貼簿。若要關閉此功能,請在 /config 中切換「選擇時複製」。關閉後,按 Ctrl+Shift+c 手動複製。在支援 kitty 鍵盤協議的終端上,例如 kitty、WezTerm、Ghostty 和 iTerm2,Cmd+c 也可以運作。如果您有活動選擇,Ctrl+c 複製而不是取消。
有活動選擇時,按住 Shift 並按方向鍵以從鍵盤延伸它。Shift+↑ 和 Shift+↓ 在選擇到達頂部或底部邊緣時捲動檢視區。Shift+Home 和 Shift+End 延伸到目前行的開始或結束。
捲動對話
全螢幕渲染在應用程式內處理捲動。使用這些快捷鍵來導航:
| 快捷鍵 | 動作 |
|---|---|
PgUp / PgDn |
向上或向下捲動半個螢幕 |
Ctrl+Home |
跳到對話的開始 |
Ctrl+End |
跳到最新訊息並重新啟用自動跟隨 |
| 滑鼠滾輪 | 一次捲動幾行 |
在沒有專用 PgUp、PgDn、Home 或 End 鍵的鍵盤上,例如 MacBook 鍵盤,按住 Fn 並使用方向鍵:Fn+↑ 傳送 PgUp、Fn+↓ 傳送 PgDn、Fn+← 傳送 Home、Fn+→ 傳送 End。這使 Ctrl+Fn+→ 成為跳到底部的快捷鍵。如果感覺很尷尬,請使用滑鼠滾輪捲動到底部以恢復跟隨,或將 scroll:bottom 重新繫結到可達到的東西。
這些動作是可重新繫結的。請參閱捲動動作以取得完整的動作名稱清單,包括沒有預設繫結的半頁和整頁變體。
自動跟隨
向上捲動會暫停自動跟隨,以便新輸出不會將您拉回底部。按 Ctrl+End 或捲動到底部以恢復跟隨。
若要完全關閉自動跟隨,使檢視保持在您留下的位置,請開啟 /config 並將「自動捲動」設定為關閉。禁用自動捲動後,檢視永遠不會自動跳到底部。需要回應的權限提示和其他對話框無論此設定如何都仍會捲動到檢視中。
滑鼠滾輪捲動
滑鼠滾輪捲動需要您的終端將滑鼠事件轉發給 Claude Code。大多數終端在應用程式要求時都會執行此操作。iTerm2 將其設為每個設定檔的設定:如果滾輪無法執行任何操作,但 PgUp 和 PgDn 運作,請開啟「設定」→「設定檔」→「終端」並開啟「啟用滑鼠報告」。點擊展開和文字選擇也需要相同的設定。
如果滑鼠滾輪捲動感覺很慢,您的終端可能每個物理凹口傳送一個捲動事件,沒有乘數。某些終端(例如 Ghostty 和啟用更快捲動的 iTerm2)已經放大了滾輪事件。其他終端(包括 VS Code 整合終端)每個凹口傳送恰好一個事件。Claude Code 無法偵測哪個。
設定 CLAUDE_CODE_SCROLL_SPEED 以乘以基本捲動距離:
export CLAUDE_CODE_SCROLL_SPEED=3
值 3 符合 vim 和類似應用程式中的預設值。該設定接受 1 到 20 的值。
搜尋和檢閱對話
Ctrl+o 在正常提示和文字記錄模式之間切換。若要取得更安靜的檢視,只顯示您的最後一個提示、工具呼叫的單行摘要(含編輯 diffstats)和最終回應,請執行 /focus。該設定在工作階段之間保持。再次執行 /focus 以關閉它。
文字記錄模式獲得 less 風格的導航和搜尋:
| 鍵 | 動作 |
|---|---|
/ |
開啟搜尋。輸入以尋找符合項,Enter 接受,Esc 取消並恢復您的捲動位置 |
n / N |
跳到下一個或上一個符合項。在您關閉搜尋列後運作 |
j / k 或 ↑ / ↓ |
捲動一行 |
g / G 或 Home / End |
跳到頂部或底部 |
Ctrl+u / Ctrl+d |
捲動半頁 |
Ctrl+b / Ctrl+f 或 Space / b |
捲動整頁 |
Ctrl+o、Esc 或 q |
退出文字記錄模式並返回提示 |
您的終端的 Cmd+f 和 tmux 搜尋看不到對話,因為它存在於替代螢幕緩衝區,而不是原生捲動回溯。若要將內容交還給您的終端,請先按 Ctrl+o 進入文字記錄模式,然後:
[:將完整對話寫入您的終端的原生捲動回溯緩衝區,所有工具輸出都已展開。對話現在是終端中的普通文字,因此Cmd+f、tmux 複製模式和任何其他原生工具都可以搜尋或選擇它。長工作階段在發生此情況時可能會暫停片刻。這會持續到您使用Esc或q退出文字記錄模式,這會讓您回到全螢幕渲染。下一個Ctrl+o重新開始。v:將對話寫入臨時檔案並在$VISUAL或$EDITOR中開啟它。
按 Esc 或 q 返回提示。
清除對話
在兩秒內按 Ctrl+L 兩次以執行 /clear 並開始新對話。第一次按下會重新繪製螢幕並顯示提示;第二次按下會清除對話。在 macOS 上,雙擊 Cmd+K 也會執行 /clear。
與 tmux 搭配使用
全螢幕渲染在 tmux 內運作,有兩個注意事項。
滑鼠滾輪捲動需要 tmux 的滑鼠模式。如果您的 ~/.tmux.conf 尚未啟用它,請新增此行並重新載入您的設定:
set -g mouse on
沒有滑鼠模式,滾輪事件會進入 tmux 而不是 Claude Code。使用 PgUp 和 PgDn 的鍵盤捲動無論如何都能運作。如果 Claude Code 偵測到 tmux 且滑鼠模式關閉,它會在啟動時列印一次性提示。
全螢幕渲染與 iTerm2 的 tmux 整合模式不相容,這是您使用 tmux -CC 進入的模式。在整合模式中,iTerm2 將每個 tmux 窗格渲染為原生分割,而不是讓 tmux 繪製到終端。替代螢幕緩衝區和滑鼠追蹤在那裡無法正確運作:滑鼠滾輪無法執行任何操作,雙擊可能會損壞終端狀態。不要在 tmux -CC 工作階段中啟用全螢幕渲染。在 iTerm2 內的常規 tmux(沒有 -CC)運作良好。
保持原生文字選擇
滑鼠捕捉是最常見的摩擦點,特別是在 SSH 上或 tmux 內。當 Claude Code 捕捉滑鼠事件時,您的終端的原生選擇時複製停止運作。您使用點擊並拖曳進行的選擇存在於 Claude Code 內,而不是在您的終端的選擇緩衝區中,因此 tmux 複製模式、Kitty 提示和類似工具看不到它。
Claude Code 嘗試將選擇寫入您的剪貼簿,但它使用的路徑取決於您的設定。在 tmux 內,它寫入 tmux 貼上緩衝區。在 SSH 上,它回退到 OSC 52 逃逸序列,某些終端預設會阻止這些序列。iTerm2 會阻止它們,直到您開啟 Settings → General → Selection → Applications in terminal may access clipboard。在 iTerm2 中執行 /terminal-setup 會為您啟用此功能。Claude Code 在每次複製後列印一個快顯通知,告訴您它使用了哪個路徑。
如果您想進行一次性的原生選擇,請在點擊並拖曳時按住您的終端的略過修飾鍵:iTerm2 中的 Option,或大多數 Linux 和 Windows 終端中的 Shift。修飾鍵告訴您的終端自己處理選擇,而不是將滑鼠事件轉發給 Claude Code,因此 Cmd+C 和您的終端的其他複製快捷鍵可以在其上運作。
如果您一直依賴原生選擇,請設定 CLAUDE_CODE_DISABLE_MOUSE=1 以選擇退出滑鼠捕捉,同時保持無閃爍渲染和平穩記憶體:
CLAUDE_CODE_NO_FLICKER=1 CLAUDE_CODE_DISABLE_MOUSE=1 claude
禁用滑鼠捕捉後,使用 PgUp、PgDn、Ctrl+Home 和 Ctrl+End 的鍵盤捲動仍然運作,您的終端原生處理選擇。您會失去點擊定位游標、點擊展開工具輸出、URL 點擊和 Claude Code 內的滾輪捲動。
研究預覽
全螢幕渲染是一個研究預覽功能。它已在常見終端模擬器上進行測試,但您可能會在不太常見的終端或不尋常的設定上遇到渲染問題。
如果您遇到問題,請在 Claude Code 內執行 /feedback 以報告它,或在 claude-code GitHub 儲存庫上開啟問題。包括您的終端模擬器名稱和版本。
若要關閉全螢幕渲染,請執行 /tui default,或如果您以該方式啟用它,請取消設定環境變數。