Skip to content

全屏渲染模式(Fullscreen)

全屏渲染是 Claude Code CLI 的可选渲染模式,设置环境变量 CLAUDE_CODE_NO_FLICKER=1 启用。它使用终端备用屏幕缓冲区(类似 vim/htop),只渲染可见消息,消除长会话闪烁,并让内存占用保持恒定。额外提供鼠标支持(点击展开工具输出、拖选文本、URL 点击)和 Ctrl+O 搜索模式。目前是研究预览功能。

全屏渲染是 Claude Code CLI 的备选渲染路径,消除闪烁、在长会话中保持内存稳定,并增加鼠标支持。它在终端备用屏幕缓冲区(alternate screen buffer)中绘制界面,类似 vimhtop,并且只渲染当前可见的消息,大幅减少每次更新发送到终端的数据量。

在渲染吞吐量是瓶颈的终端(如 VS Code 内置终端、tmux、iTerm2)中效果最明显。如果你遇到这些情况,全屏渲染可以改善体验:

  • Claude 工作时滚动条跳到顶部
  • 工具输出流入时屏幕闪烁

启用方法

在启动 Claude Code 时设置环境变量:

bash
CLAUDE_CODE_NO_FLICKER=1 claude

要对所有会话启用,在 shell 配置文件(~/.zshrc~/.bashrc)中导出变量:

bash
export CLAUDE_CODE_NO_FLICKER=1

关闭全屏渲染:取消设置该变量,或设置 CLAUDE_CODE_NO_FLICKER=0


变化对比

之前现在说明
Cmd+f 或 tmux 搜索查找文字Ctrl+O 一次进入文字稿模式(/ 搜索或 [ 写入滚动缓冲区),Ctrl+O 两次进入焦点视图搜索和回顾对话
终端原生点选拖动选文应用内选择,鼠标松开自动复制使用鼠标
Cmd-click 打开 URL直接点击 URL使用鼠标

使用鼠标

全屏渲染在应用内捕获鼠标事件:

  • 点击提示输入框:在正在输入的文字中任意定位光标
  • 点击折叠的工具结果:展开查看完整输出,再次点击折叠。工具调用与结果一起展开,只有有更多内容的消息才能点击
  • 点击 URL 或文件路径:在默认应用中打开。文件路径(如 Edit/Write 工具打印的路径)用默认应用打开;http://https:// 链接在浏览器打开
    • 注意:VS Code 内置终端等 xterm.js 终端请继续用 Cmd-click,Claude Code 会让终端自行处理链接以避免重复打开
  • 点击拖动:选择对话中任意位置的文字。双击选词(文件路径作为一个单元),三击选行
  • 鼠标滚轮:滚动对话

选中文字会在松开鼠标时自动复制到剪贴板。要关闭自动复制,在 /config 中切换 Copy on select。关闭后用 Ctrl+Shift+C 手动复制;支持 kitty 键盘协议的终端(kitty、WezTerm、Ghostty、iTerm2)也支持 Cmd+C

滚动快捷键

快捷键操作
PgUp / PgDn上下滚动半屏
Ctrl+Home跳到对话开头
Ctrl+End跳到最新消息并恢复自动跟随
鼠标滚轮每次滚几行

没有独立 PgUp/PgDn/Home/End 键的键盘(如 MacBook):Fn+↑=PgUp、Fn+↓=PgDn、Fn+←=Home、Fn+→=End。即 Ctrl+Fn+→ 跳到底部。

自动跟随:向上滚动会暂停自动跟随,新输出不会拉回底部。按 Ctrl+End 或滚到底部恢复跟随。这些动作可在 Scroll actions 中重新绑定。

调整滚轮速度

如果滚轮感觉太慢,可能是终端每个物理滚格只发一次事件。设置 CLAUDE_CODE_SCROLL_SPEED 放大基础滚动距离:

bash
export CLAUDE_CODE_SCROLL_SPEED=3

取值 1-20,3 与 vim 等应用默认一致。


搜索和回顾对话

全屏模式下,Ctrl+O 在三种状态中循环:正常提示 → 文字稿模式 → 焦点视图 → 返回正常提示。

文字稿模式Ctrl+O 一次):提供 less 风格的导航和搜索。

按键操作
/打开搜索,输入关键词,Enter 确认,Esc 取消并恢复滚动位置
n / N跳到下一个/上一个匹配(关闭搜索栏后仍可用)
j / k / 滚动一行
g / GHome / End跳到顶部/底部
Ctrl+U / Ctrl+D滚动半页
Ctrl+B / Ctrl+FSpace / b滚动整页
Ctrl+O进入焦点视图
Escq退出文字稿模式

在文字稿模式中,还可以:

  • [:将完整对话(展开所有工具输出)写入终端原生滚动缓冲区,让 Cmd+F、tmux 复制模式等原生工具可以搜索。退出文字稿模式(Escq)后恢复全屏渲染
  • v:将对话写入临时文件并在 $VISUAL$EDITOR 中打开

焦点视图Ctrl+O 两次):只显示上一条提示语、工具调用的一行摘要(含编辑 diffstats)和最终响应。


在 tmux 中使用

全屏渲染在 tmux 中可用,但有两个注意事项:

1. 鼠标滚轮:需要 tmux 的鼠标模式。在 ~/.tmux.conf 中添加:

set -g mouse on

然后重载配置。没有鼠标模式时,滚轮事件发给 tmux 而非 Claude Code;键盘滚动(PgUp/PgDn)不受影响。Claude Code 检测到 tmux 鼠标模式关闭时会在启动时打印一次提示。

2. iTerm2 tmux 集成模式:不兼容。iTerm2 的 tmux -CC(集成模式)会让每个 tmux 窗格作为原生分割显示,备用屏幕缓冲区和鼠标跟踪无法正常工作(滚轮无效,双击可能损坏终端状态)。不要在 tmux -CC 会话中启用全屏渲染。常规 tmux(不带 -CC)在 iTerm2 中完全正常。


保留原生文本选择

如果需要使用终端原生选择(如 tmux 复制模式、SSH 上的 OSC 52 等),可以禁用鼠标捕获,同时保留无闪烁渲染和恒定内存:

bash
CLAUDE_CODE_NO_FLICKER=1 CLAUDE_CODE_DISABLE_MOUSE=1 claude

禁用鼠标捕获后,键盘滚动(PgUp、PgDn、Ctrl+Home、Ctrl+End)仍然工作,终端处理原生选择。失去的功能:点击定位光标、点击展开工具输出、URL 点击、鼠标滚轮滚动。


研究预览说明

全屏渲染是研究预览功能,已在常见终端模拟器上测试,但在不常见的终端或特殊配置中可能遇到渲染问题。遇到问题请用 /feedback 报告,或在 claude-code GitHub repo 提 issue,注明终端模拟器名称和版本。


常见问题

Q: 启用全屏渲染后 Cmd+F 为什么搜索不到对话内容?

A: 全屏渲染使用终端备用屏幕缓冲区,对话不在终端原生滚动缓冲区中,所以 Cmd+F 看不到。用 Ctrl+O 进入文字稿模式后按 / 搜索;或按 [ 把对话写入原生滚动缓冲区再用 Cmd+F

Q: 在 VS Code 内置终端中鼠标点击 URL 没有反应怎么办?

A: VS Code 内置终端是基于 xterm.js 的,请继续使用 Cmd-click 打开链接。Claude Code 在检测到 xterm.js 终端时会让终端自己处理链接。

Q: 全屏渲染会影响性能吗?

A: 实际上会改善渲染性能。只渲染可见消息减少了每次更新的数据量;在 VS Code 终端、tmux 和 iTerm2 中,渲染吞吐量是主要瓶颈时效果最明显。