跳转到主要内容
全屏渲染是一个可选的研究预览功能,需要 Claude Code v2.1.89 或更高版本。在当前对话中运行 /tui fullscreen 来切换,或在 v2.1.110 之前的版本上设置 CLAUDE_CODE_NO_FLICKER=1。行为可能会根据反馈而改变。
全屏渲染是 Claude Code CLI 的一种替代渲染路径,它消除了闪烁,在长对话中保持内存使用量平稳,并添加了鼠标支持。它在终端的备用屏幕缓冲区上绘制界面,就像 vimhtop 一样,并且只渲染当前可见的消息。这减少了每次更新时发送到终端的数据量。 在渲染吞吐量是瓶颈的终端模拟器中,如 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+HomeShift+End 扩展到当前行的开始或结束。

滚动对话

全屏渲染在应用内处理滚动。使用这些快捷键来导航:
快捷键操作
PgUp / PgDn向上或向下滚动半屏
Ctrl+Home跳到对话的开始
Ctrl+End跳到最新消息并重新启用自动跟随
鼠标滚轮一次滚动几行
在没有专用 PgUpPgDnHomeEnd 键的键盘上,如 MacBook 键盘,按住 Fn 并使用箭头键:Fn+↑ 发送 PgUpFn+↓ 发送 PgDnFn+← 发送 HomeFn+→ 发送 End。这使得 Ctrl+Fn+→ 成为跳到底部的快捷键。如果这感觉很尴尬,用鼠标滚轮滚动到底部以恢复跟随,或将 scroll:bottom 重新绑定到可达到的东西。 这些操作是可重新绑定的。请参阅滚动操作以获取完整的操作名称列表,包括没有默认绑定的半页和全页变体。

自动跟随

向上滚动会暂停自动跟随,以便新输出不会将您拉回底部。按 Ctrl+End 或滚动到底部以恢复跟随。 要完全关闭自动跟随,以便视图保持在您离开的位置,请打开 /config 并将自动滚动设置为关闭。禁用自动滚动后,视图永远不会自动跳到底部。权限提示和其他需要响应的对话框仍然会滚动到视图中,无论此设置如何。

鼠标滚轮滚动

鼠标滚轮滚动需要您的终端将鼠标事件转发到 Claude Code。大多数终端在应用程序请求时都会这样做。iTerm2 将其作为每个配置文件的设置:如果滚轮不起作用但 PgUpPgDn 有效,请打开”设置”→“配置文件”→“终端”并打开”启用鼠标报告”。点击展开和文本选择也需要相同的设置。 如果鼠标滚轮滚动感觉很慢,您的终端可能每个物理凹口发送一个滚动事件,没有乘数。一些终端,如 Ghostty 和启用了更快滚动的 iTerm2,已经放大了滚轮事件。其他的,包括 VS Code 集成终端,每个凹口发送恰好一个事件。Claude Code 无法检测哪个。 设置 CLAUDE_CODE_SCROLL_SPEED 来乘以基础滚动距离:
export CLAUDE_CODE_SCROLL_SPEED=3
3vim 和类似应用程序中的默认值匹配。该设置接受 1 到 20 的值,以及 1 以下的分数值,如 0.5,以减缓已经放大滚轮事件的终端中加速的触控板和滚轮滚动。 要交互式地调整滚动速度,请运行 /scroll-speed。该对话框显示一个标尺,您可以在其打开时滚动,以便您可以立即感受到变化。按 来调整,按 r 重置为自动检测的默认值,按 Enter 保存。该命令写入与 CLAUDE_CODE_SCROLL_SPEED 环境变量设置相同的值,持久化到 ~/.claude/settings.json。该命令在 JetBrains IDE 终端中不可用。 除了基础速度外,Claude Code 还会在您快速旋转滚轮时加速滚动速率,因此快速旋转覆盖的距离比相同数量的慢凹口更远。要关闭加速并保持每个凹口的恒定速率,请在 settings.json 中将 wheelScrollAccelerationEnabled 设置为 false。此设置需要 Claude Code v2.1.174 或更高版本。

JetBrains IDE 终端中的滚动

在 JetBrains IDE 终端中,Claude Code 应用其自己的滚动处理并忽略 CLAUDE_CODE_SCROLL_SPEED。终端以比其他模拟器高得多的速率发送滚动事件,因此在其他地方调整的乘数会在这里超出。 在 2025.2 中,终端还存在滚动滚轮错误,会产生虚假的箭头键和错误方向的事件。Claude Code 在运行时检测这些错误并自动缓解它们,因此触控板和鼠标滚轮滚动无需配置即可工作。为了获得最佳滚动体验,请升级到 2025.3 或更高版本。如果 Claude Code 检测到该错误,它会在您第一次滚动时显示提示。

搜索和查看对话

Ctrl+o 在正常提示和记录模式之间切换。对于一个更安静的视图,只显示您的最后一个提示、工具调用的单行摘要和编辑 diffstats,以及最终响应,请运行 /focus。该设置在会话之间保持。再次运行 /focus 来关闭它。 记录模式获得 less 风格的导航和搜索:
操作
/打开搜索。输入以查找匹配项,Enter 接受,Esc 取消并恢复您的滚动位置
n / N跳到下一个或上一个匹配项。在您关闭搜索栏后工作
j / k / 向上或向下滚动一行
g / GHome / End跳到顶部或底部
Ctrl+u / Ctrl+d滚动半页
Ctrl+b / Ctrl+fSpace / b滚动整页
Ctrl+oEscq退出记录模式并返回到提示
您的终端的 Cmd+f 和 tmux 搜索看不到对话,因为它存在于备用屏幕缓冲区中,而不是原生滚动历史中。要将内容交还给您的终端,请先按 Ctrl+o 进入记录模式,然后:
  • [:将完整对话写入您的终端的原生滚动历史缓冲区,所有工具输出都已展开。对话现在是您的终端中的普通文本,因此 Cmd+f、tmux 复制模式和任何其他原生工具都可以搜索或选择它。长会话可能会在此过程中暂停片刻。这会持续到您使用 Escq 退出记录模式,这会将您返回到全屏渲染。下一个 Ctrl+o 重新开始。
  • v:将对话写入临时文件并在 $VISUAL$EDITOR 中打开它。
Escq 返回到提示。

清除对话

在两秒内按两次 Ctrl+L 来运行 /clear 并开始新对话。第一次按下会重新绘制屏幕并显示提示;第二次按下会清除对话。在 macOS 上,双击 Cmd+K 也会运行 /clear

与 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 会话中启用全屏渲染。常规 tmux 在 iTerm2 内,没有 -CC,工作正常。 tmux 不支持同步输出,因此在重绘期间您可能会看到比直接在终端中运行 Claude Code 时更多的闪烁。如果闪烁很明显,特别是在 SSH 上,请在 tmux 外的自己的终端标签页中运行 Claude Code。

保持原生文本选择

鼠标捕获是最常见的摩擦点,特别是在 SSH 上或 tmux 内。当 Claude Code 捕获鼠标事件时,您的终端的原生选择时复制停止工作。您使用点击拖动进行的选择存在于 Claude Code 内,而不是在您的终端的选择缓冲区中,因此 tmux 复制模式、Kitty 提示和类似工具看不到它。 Claude Code 将选择写入您的系统剪贴板,它使用的路径取决于您的设置。在本地会话中,它运行原生剪贴板工具:
  • macOS: pbcopy
  • Linux: Wayland 上的 wl-copy,或 X11 上的 xclipxsel(取决于安装的是哪个)。Claude Code 同时写入剪贴板和 PRIMARY 选择,因此中键粘贴可以工作。
  • Windows 和 WSL: PowerShell Set-Clipboard
在 tmux 内,它也写入 tmux 粘贴缓冲区。在 SSH 上,它回退到 OSC 52 转义序列。Claude Code 在每次复制后打印一个 toast,告诉您它使用了哪个路径。 某些终端默认阻止 OSC 52。iTerm2 会阻止它,直到您打开 Settings → General → Selection → Applications in terminal may access clipboard;在 iTerm2 中运行 /terminal-setup 会为您启用此功能。 对于一次性的原生选择,要使用的键取决于您的终端:
  • Terminal.app: Fn
  • iTerm2: Option
  • VS Code、Cursor 和 Devin Desktop: Shift,或在启用 terminal.integrated.macOptionClickForcesSelection 设置的 macOS 上使用 Option
  • 大多数其他终端: Shift
按住该键同时点击拖动。您的终端自己处理选择,而不是将其传递给 Claude Code,因此 Cmd+C 等复制快捷键可以在您选择的内容上工作。Claude Code 也会在其屏幕提示中显示正确的键。 在 SSH 上或 tmux 内,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 仓库上打开一个问题。包括您的终端模拟器名称和版本。 要关闭全屏渲染,请运行 /tui default,或如果您以这种方式启用了 CLAUDE_CODE_NO_FLICKER,请取消设置它。要强制使用经典渲染器而不管保存的 tui 设置,请设置 CLAUDE_CODE_DISABLE_ALTERNATE_SCREEN=1。经典渲染器将对话保留在您的终端的原生滚动缓冲区中,因此 Cmd+f 和 tmux 复制模式可以照常工作。 agent viewclaude attach 打开的后台会话始终使用全屏渲染。附加终端进入备用屏幕缓冲区以显示会话,经典渲染器在那里没有滚动缓冲或鼠标处理,因此 tui 设置和 CLAUDE_CODE_DISABLE_ALTERNATE_SCREEN 不适用于它们。