全螢幕渲染是一個選擇加入的研究預覽,需要 Claude Code v2.1.88 或更新版本。使用
CLAUDE_CODE_NO_FLICKER=1 啟用它。行為可能會根據回饋而改變。vim 或 htop 一樣,並且只渲染目前可見的訊息。這減少了每次更新時傳送到終端的資料量。
在渲染吞吐量是瓶頸的終端模擬器中,差異最為明顯,例如 VS Code 整合終端、tmux 和 iTerm2。如果您的終端捲動位置在 Claude 工作時跳到頂部,或者工具輸出串流進來時螢幕閃爍,此模式可以解決這些問題。
全螢幕一詞描述的是 Claude Code 如何接管終端的繪製表面,就像
vim 一樣。它與最大化終端視窗無關,並且在任何視窗大小下都能運作。啟用全螢幕渲染
啟動 Claude Code 時設定CLAUDE_CODE_NO_FLICKER 環境變數:
~/.zshrc 或 ~/.bashrc)中匯出變數:
變更內容
全螢幕渲染改變了 CLI 如何繪製到您的終端。輸入框保持固定在螢幕底部,而不是在輸出串流進來時移動。如果輸入在 Claude 工作時保持不動,則全螢幕渲染處於活動狀態。只有可見的訊息保留在渲染樹中,因此無論對話長度如何,記憶體都保持恆定。 因為對話存在於替代螢幕緩衝區而不是終端的捲動回溯,所以有幾件事的運作方式不同:
如果滑鼠捕捉干擾您的工作流程,您可以關閉它,同時保持無閃爍渲染。
使用滑鼠
全螢幕渲染捕捉滑鼠事件並在 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 複製而不是取消。
捲動對話
全螢幕渲染在應用程式內處理捲動。使用這些快捷鍵來導航:| 快捷鍵 | 動作 |
|---|---|
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 或捲動到底部以恢復跟隨。
這些動作可重新繫結。請參閱快捷鍵以自訂它們。動作名稱為 scroll:pageUp、scroll:pageDown、scroll:top 和 scroll:bottom。沒有預設繫結的其他動作包括 scroll:lineUp、scroll:lineDown、scroll:halfPageUp、scroll:halfPageDown、scroll:fullPageUp 和 scroll:fullPageDown。
調整滾輪捲動速度
如果滑鼠滾輪捲動感覺很慢,您的終端可能每個物理凹口傳送一個捲動事件,沒有乘數。某些終端(例如 Ghostty 和啟用更快捲動的 iTerm2)已經放大了滾輪事件。其他終端(包括 VS Code 整合終端)每個凹口傳送恰好一個事件。Claude Code 無法偵測哪個。 設定CLAUDE_CODE_SCROLL_SPEED 以乘以基本捲動距離:
3 符合 vim 和類似應用程式中的預設值。該設定接受 1 到 20 的值。
搜尋和檢閱對話
按Ctrl+o 進入文字記錄模式。啟用全螢幕渲染後,文字記錄模式獲得 less 風格的導航和搜尋:
| 鍵 | 動作 |
|---|---|
/ | 開啟搜尋。輸入以尋找符合項,Enter 接受,Esc 取消並恢復您的捲動位置 |
n / N | 跳到下一個或上一個符合項。在您關閉搜尋列後運作 |
j / k 或 ↑ / ↓ | 捲動一行 |
g / G 或 Home / End | 跳到頂部或底部 |
Ctrl+u / Ctrl+d | 捲動半頁 |
Ctrl+b / Ctrl+f 或 Space / b | 捲動整頁 |
Esc、q 或 Ctrl+o | 退出文字記錄模式 |
Cmd+f 和 tmux 搜尋看不到對話,因為它存在於替代螢幕緩衝區,而不是原生捲動回溯。若要將內容交還給您的終端,請先按 Ctrl+o 進入文字記錄模式,然後:
[:將完整對話寫入您的終端的原生捲動回溯緩衝區,所有工具輸出都已展開。對話現在是終端中的普通文字,因此Cmd+f、tmux 複製模式和任何其他原生工具都可以搜尋或選擇它。長工作階段在發生此情況時可能會暫停片刻。這會持續到您使用Esc或q退出文字記錄模式,這會讓您回到全螢幕渲染。下一個Ctrl+o重新開始。v:將對話寫入臨時檔案並在$VISUAL或$EDITOR中開啟它。
Esc、q 或 Ctrl+o 返回提示。
與 tmux 搭配使用
全螢幕渲染在 tmux 內運作,有兩個注意事項。 滑鼠滾輪捲動需要 tmux 的滑鼠模式。如果您的~/.tmux.conf 尚未啟用它,請新增此行並重新載入您的設定:
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 逃逸序列,某些終端預設會阻止這些序列。Claude Code 在每次複製後列印一個快顯通知,告訴您它使用了哪個路徑。 如果您依賴終端的原生選擇,請設定CLAUDE_CODE_DISABLE_MOUSE=1 以選擇退出滑鼠捕捉,同時保持無閃爍渲染和平穩記憶體:
PgUp、PgDn、Ctrl+Home 和 Ctrl+End 的鍵盤捲動仍然運作,您的終端原生處理選擇。您會失去點擊定位游標、點擊展開工具輸出、URL 點擊和 Claude Code 內的滾輪捲動。
研究預覽
全螢幕渲染是一個研究預覽功能。它已在常見終端模擬器上進行測試,但您可能會在不太常見的終端或不尋常的設定上遇到渲染問題。 如果您遇到問題,請在 Claude Code 內執行/feedback 以報告它,或在 claude-code GitHub 儲存庫上開啟問題。包括您的終端模擬器名稱和版本。
若要關閉全螢幕渲染,請取消設定環境變數或設定 CLAUDE_CODE_NO_FLICKER=0。