Appearance
全屏渲染模式(Fullscreen)
全屏渲染是 Claude Code CLI 的可选渲染模式,设置环境变量 CLAUDE_CODE_NO_FLICKER=1 启用。它使用终端备用屏幕缓冲区(类似 vim/htop),只渲染可见消息,消除长会话闪烁,并让内存占用保持恒定。额外提供鼠标支持(点击展开工具输出、拖选文本、URL 点击)和 Ctrl+O 搜索模式。目前是研究预览功能。
全屏渲染是 Claude Code CLI 的备选渲染路径,消除闪烁、在长会话中保持内存稳定,并增加鼠标支持。它在终端备用屏幕缓冲区(alternate screen buffer)中绘制界面,类似 vim 或 htop,并且只渲染当前可见的消息,大幅减少每次更新发送到终端的数据量。
在渲染吞吐量是瓶颈的终端(如 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 会让终端自行处理链接以避免重复打开
- 注意:VS Code 内置终端等 xterm.js 终端请继续用
- 点击拖动:选择对话中任意位置的文字。双击选词(文件路径作为一个单元),三击选行
- 鼠标滚轮:滚动对话
选中文字会在松开鼠标时自动复制到剪贴板。要关闭自动复制,在 /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 / G 或 Home / End | 跳到顶部/底部 |
Ctrl+U / Ctrl+D | 滚动半页 |
Ctrl+B / Ctrl+F 或 Space / b | 滚动整页 |
Ctrl+O | 进入焦点视图 |
Esc 或 q | 退出文字稿模式 |
在文字稿模式中,还可以:
[:将完整对话(展开所有工具输出)写入终端原生滚动缓冲区,让Cmd+F、tmux 复制模式等原生工具可以搜索。退出文字稿模式(Esc或q)后恢复全屏渲染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 中,渲染吞吐量是主要瓶颈时效果最明显。