跳轉到主要內容
全螢幕渲染是一個選擇加入的研究預覽,需要 Claude Code v2.1.88 或更新版本。使用 CLAUDE_CODE_NO_FLICKER=1 啟用它。行為可能會根據回饋而改變。
全螢幕渲染是 Claude Code CLI 的替代渲染路徑,可消除閃爍、在長對話中保持記憶體使用平穩,並新增滑鼠支援。它在終端的替代螢幕緩衝區上繪製介面,就像 vimhtop 一樣,並且只渲染目前可見的訊息。這減少了每次更新時傳送到終端的資料量。 在渲染吞吐量是瓶頸的終端模擬器中,差異最為明顯,例如 VS Code 整合終端、tmux 和 iTerm2。如果您的終端捲動位置在 Claude 工作時跳到頂部,或者工具輸出串流進來時螢幕閃爍,此模式可以解決這些問題。
全螢幕一詞描述的是 Claude Code 如何接管終端的繪製表面,就像 vim 一樣。它與最大化終端視窗無關,並且在任何視窗大小下都能運作。

啟用全螢幕渲染

啟動 Claude Code 時設定 CLAUDE_CODE_NO_FLICKER 環境變數:
CLAUDE_CODE_NO_FLICKER=1 claude
若要為每個工作階段啟用它,請在您的 shell 設定檔(例如 ~/.zshrc~/.bashrc)中匯出變數:
export CLAUDE_CODE_NO_FLICKER=1

變更內容

全螢幕渲染改變了 CLI 如何繪製到您的終端。輸入框保持固定在螢幕底部,而不是在輸出串流進來時移動。如果輸入在 Claude 工作時保持不動,則全螢幕渲染處於活動狀態。只有可見的訊息保留在渲染樹中,因此無論對話長度如何,記憶體都保持恆定。 因為對話存在於替代螢幕緩衝區而不是終端的捲動回溯,所以有幾件事的運作方式不同:
之前現在詳細資訊
Cmd+f 或 tmux 搜尋來尋找文字Ctrl+o 然後 / 來搜尋,或 Ctrl+o 然後 [ 將對話寫入原生捲動回溯,以便 Cmd+f 再次運作搜尋和檢閱對話
終端的原生點擊並拖曳來選擇和複製應用程式內選擇,在滑鼠釋放時自動複製使用滑鼠
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 複製而不是取消。

捲動對話

全螢幕渲染在應用程式內處理捲動。使用這些快捷鍵來導航:
快捷鍵動作
PgUp / PgDn向上或向下捲動半個螢幕
Ctrl+Home跳到對話的開始
Ctrl+End跳到最新訊息並重新啟用自動跟隨
滑鼠滾輪一次捲動幾行
在沒有專用 PgUpPgDnHomeEnd 鍵的鍵盤上,例如 MacBook 鍵盤,按住 Fn 並使用方向鍵:Fn+↑ 傳送 PgUpFn+↓ 傳送 PgDnFn+← 傳送 HomeFn+→ 傳送 End。這使 Ctrl+Fn+→ 成為跳到底部的快捷鍵。如果感覺很尷尬,請使用滑鼠滾輪捲動到底部以恢復跟隨,或將 scroll:bottom 重新繫結到可達到的內容。 向上捲動會暫停自動跟隨,以便新輸出不會將您拉回底部。按 Ctrl+End 或捲動到底部以恢復跟隨。 這些動作可重新繫結。請參閱快捷鍵以自訂它們。動作名稱為 scroll:pageUpscroll:pageDownscroll:topscroll:bottom。沒有預設繫結的其他動作包括 scroll:lineUpscroll:lineDownscroll:halfPageUpscroll:halfPageDownscroll:fullPageUpscroll:fullPageDown

調整滾輪捲動速度

如果滑鼠滾輪捲動感覺很慢,您的終端可能每個物理凹口傳送一個捲動事件,沒有乘數。某些終端(例如 Ghostty 和啟用更快捲動的 iTerm2)已經放大了滾輪事件。其他終端(包括 VS Code 整合終端)每個凹口傳送恰好一個事件。Claude Code 無法偵測哪個。 設定 CLAUDE_CODE_SCROLL_SPEED 以乘以基本捲動距離:
export CLAUDE_CODE_SCROLL_SPEED=3
3 符合 vim 和類似應用程式中的預設值。該設定接受 1 到 20 的值。

搜尋和檢閱對話

Ctrl+o 進入文字記錄模式。啟用全螢幕渲染後,文字記錄模式獲得 less 風格的導航和搜尋:
動作
/開啟搜尋。輸入以尋找符合項,Enter 接受,Esc 取消並恢復您的捲動位置
n / N跳到下一個或上一個符合項。在您關閉搜尋列後運作
j / k / 捲動一行
g / GHome / End跳到頂部或底部
Ctrl+u / Ctrl+d捲動半頁
Ctrl+b / Ctrl+fSpace / b捲動整頁
EscqCtrl+o退出文字記錄模式
您的終端的 Cmd+f 和 tmux 搜尋看不到對話,因為它存在於替代螢幕緩衝區,而不是原生捲動回溯。若要將內容交還給您的終端,請先按 Ctrl+o 進入文字記錄模式,然後:
  • [:將完整對話寫入您的終端的原生捲動回溯緩衝區,所有工具輸出都已展開。對話現在是終端中的普通文字,因此 Cmd+f、tmux 複製模式和任何其他原生工具都可以搜尋或選擇它。長工作階段在發生此情況時可能會暫停片刻。這會持續到您使用 Escq 退出文字記錄模式,這會讓您回到全螢幕渲染。下一個 Ctrl+o 重新開始。
  • v:將對話寫入臨時檔案並在 $VISUAL$EDITOR 中開啟它。
EscqCtrl+o 返回提示。

與 tmux 搭配使用

全螢幕渲染在 tmux 內運作,有兩個注意事項。 滑鼠滾輪捲動需要 tmux 的滑鼠模式。如果您的 ~/.tmux.conf 尚未啟用它,請新增此行並重新載入您的設定:
set -g mouse on
沒有滑鼠模式,滾輪事件會進入 tmux 而不是 Claude Code。使用 PgUpPgDn 的鍵盤捲動無論如何都能運作。如果 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 以選擇退出滑鼠捕捉,同時保持無閃爍渲染和平穩記憶體:
CLAUDE_CODE_NO_FLICKER=1 CLAUDE_CODE_DISABLE_MOUSE=1 claude
禁用滑鼠捕捉後,使用 PgUpPgDnCtrl+HomeCtrl+End 的鍵盤捲動仍然運作,您的終端原生處理選擇。您會失去點擊定位游標、點擊展開工具輸出、URL 點擊和 Claude Code 內的滾輪捲動。

研究預覽

全螢幕渲染是一個研究預覽功能。它已在常見終端模擬器上進行測試,但您可能會在不太常見的終端或不尋常的設定上遇到渲染問題。 如果您遇到問題,請在 Claude Code 內執行 /feedback 以報告它,或在 claude-code GitHub 儲存庫上開啟問題。包括您的終端模擬器名稱和版本。 若要關閉全螢幕渲染,請取消設定環境變數或設定 CLAUDE_CODE_NO_FLICKER=0