{/* TRANSLATED — 已翻译为中文 */}

> ## 文档索引
> 在以下地址获取完整文档索引：https://code.claude.com/docs/llms.txt
> 使用此文件发现所有可用页面，然后再进一步探索。

# 全屏渲染

> 启用更流畅、无闪烁的渲染模式，支持鼠标操作和长对话中的稳定内存使用。

<Note>
  全屏渲染是选择加入的[研究预览](#研究预览)，需要 Claude Code v2.1.89 或更高版本。在当前对话中运行 `/tui fullscreen` 切换，或在 v2.1.110 之前的版本上设置 `CLAUDE_CODE_NO_FLICKER=1`。行为可能根据反馈而变化。
</Note>

全屏渲染是 Claude Code CLI 的替代渲染路径，消除闪烁，保持长对话中内存使用平稳，并添加鼠标支持。它在终端的备用屏幕缓冲区上绘制界面，就像 `vim` 或 `htop`，只渲染当前可见的消息。这减少了每次更新发送到终端的数据量。

差异在渲染吞吐量是瓶颈的终端模拟器中最为明显，如 VS Code 集成终端、tmux 和 iTerm2。如果 Claude 工作时终端滚动位置跳到顶部，或工具输出流式传入时屏幕闪烁，此模式可解决这些问题。

<Note>
  全屏描述的是 Claude Code 如何接管终端的绘图界面，就像 `vim` 那样。它与最大化终端窗口无关，在任何窗口大小下都可以工作。
</Note>

## 启用全屏渲染

在任何 Claude Code 对话中运行 `/tui fullscreen`。CLI 保存 [`tui` 设置](/cn/settings#可用设置)并以全屏重新启动，对话保持完整，因此您可以在会话中切换而不会丢失上下文。不带参数运行 `/tui` 打印当前活动的渲染器。

您也可以在启动 Claude Code 之前设置 `CLAUDE_CODE_NO_FLICKER` 环境变量：

```bash theme={null}
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` 中切换 Copy on select。关闭后，按 `Ctrl+Shift+c` 手动复制。在支持 kitty 键盘协议的终端上（如 kitty、WezTerm、Ghostty 和 iTerm2），`Cmd+c` 也可以使用。如果您有活跃的选择，`Ctrl+c` 会复制而不是取消。

选择活跃时，按住 `Shift` 并使用方向键从键盘扩展选择。`Shift+Up` 和 `Shift+Down` 在选择到达顶部或底部边缘时滚动视口。`Shift+Home` 和 `Shift+End` 扩展到当前行的开头或结尾。

## 滚动对话

全屏渲染在应用内部处理滚动。使用以下快捷键导航：

| 快捷键          | 操作                                               |
| :-------------- | :------------------------------------------------- |
| `PgUp` / `PgDn` | 向上或向下滚动半屏                                 |
| `Ctrl+Home`     | 跳转到对话开头                                     |
| `Ctrl+End`      | 跳转到最新消息并重新启用自动跟随                   |
| 鼠标滚轮        | 每次滚动几行                                       |

在没有专用 `PgUp`、`PgDn`、`Home` 或 `End` 键的键盘上（如 MacBook 键盘），按住 `Fn` 配合方向键：`Fn+Up` 发送 `PgUp`，`Fn+Down` 发送 `PgDn`，`Fn+Left` 发送 `Home`，`Fn+Right` 发送 `End`。这使得 `Ctrl+Fn+Right` 成为跳转到底部的快捷键。如果这感觉别扭，使用鼠标滚轮滚动到底部以恢复跟随，或将 `scroll:bottom` 重新绑定到更方便的按键。

这些操作可以重新绑定。有关操作名称的完整列表（包括没有默认绑定的半页和全页变体），请参阅[滚动操作](/cn/keybindings#滚动操作)。

### 自动跟随

向上滚动会暂停自动跟随，使新输出不会将您拉回底部。按 `Ctrl+End` 或滚动到底部以恢复跟随。

要完全关闭自动跟随使视图保持在您离开的位置，打开 `/config` 并将 Auto-scroll 设置为 off。禁用自动滚动后，视图永远不会自行跳到底部。需要响应的权限提示和其他对话框无论此设置如何都会滚动到视图中。

### 鼠标滚轮滚动

鼠标滚轮滚动需要您的终端将鼠标事件转发给 Claude Code。大多数终端在应用请求时都会这样做。iTerm2 将其作为每个配置文件的设置：如果滚轮无效但 `PgUp` 和 `PgDn` 有效，打开 Settings -> Profiles -> Terminal 并启用 Enable mouse reporting。点击展开和文本选择也需要相同的设置。

如果鼠标滚轮滚动感觉慢，您的终端可能每个物理刻度发送一个滚动事件，没有乘数。某些终端（如启用了快速滚动的 Ghostty 和 iTerm2）已经放大了滚轮事件。其他终端（包括 VS Code 集成终端）每个刻度精确发送一个事件。Claude Code 无法检测是哪种。

设置 `CLAUDE_CODE_SCROLL_SPEED` 乘以基础滚动距离：

```bash theme={null}
export CLAUDE_CODE_SCROLL_SPEED=3
```

值 `3` 匹配 `vim` 和类似应用中的默认值。设置接受 1 到 20 之间的值。

要交互式调整滚动速度，运行 `/scroll-speed`。对话框显示一个标尺，您可以在打开时滚动以便立即感受变化。按 `Left` 和 `Right` 调整，按 `r` 重置为自动检测的默认值，按 `Enter` 保存。命令写入与 `CLAUDE_CODE_SCROLL_SPEED` 环境变量设置相同的值，持久化到 `~/.claude/settings.json`。命令在 JetBrains IDE 终端中不可用。

### 在 JetBrains IDE 终端中滚动

在 JetBrains IDE 终端中，Claude Code 应用自己的滚动处理并忽略 `CLAUDE_CODE_SCROLL_SPEED`。终端以比其他模拟器高得多的速率发送滚动事件，因此在其他地方调整的乘数在此处会过度。

在 2025.2 中，终端还有滚轮 bug，会产生虚假的方向键和错误方向的事件。Claude Code 在运行时检测并自动缓解这些，因此触控板和鼠标滚轮滚动无需配置即可工作。要获得最佳滚动体验，升级到 2025.3 或更高版本。如果检测到 bug，Claude Code 在您第一次滚动时显示提示。

## 搜索和审查对话

`Ctrl+o` 在正常提示和转录模式之间切换。要获得更安静的视图（仅显示您的最后一个提示、带编辑差异统计的工具调用单行摘要和最终响应），运行 `/focus`。设置跨会话持久。再次运行 `/focus` 关闭它。

转录模式获得 `less` 风格的导航和搜索：

| 按键                                   | 操作                                                                                                 |
| :------------------------------------- | :--------------------------------------------------------------------------------------------------- |
| `/`                                    | 打开搜索。输入查找匹配项，`Enter` 接受，`Esc` 取消并恢复滚动位置                                     |
| `n` / `N`                              | 跳转到下一个或上一个匹配项。关闭搜索栏后有效                                                         |
| `j` / `k` 或 `Up` / `Down`             | 滚动一行                                                                                             |
| `g` / `G` 或 `Home` / `End`            | 跳转到顶部或底部                                                                                     |
| `Ctrl+u` / `Ctrl+d`                    | 滚动半页                                                                                             |
| `Ctrl+b` / `Ctrl+f` 或 `Space` / `b`   | 滚动整页                                                                                             |
| `Ctrl+o`、`Esc` 或 `q`                 | 退出转录模式并返回提示                                                                               |

您的终端的 `Cmd+f` 和 tmux 搜索看不到对话，因为它存在于备用屏幕缓冲区中，而不是原生回滚中。要将内容交还给您的终端，先按 `Ctrl+o` 进入转录模式，然后：

* **`[`**：将完整对话写入终端的原生回滚缓冲区，所有工具输出已展开。对话现在是终端中的普通文本，因此 `Cmd+f`、tmux 复制模式和任何其他原生工具可以搜索或选择它。长会话可能暂停片刻。这持续到您使用 `Esc` 或 `q` 退出转录模式，返回全屏渲染。下一个 `Ctrl+o` 全新开始。
* **`v`**：将对话写入临时文件并在 `$VISUAL` 或 `$EDITOR` 中打开。

按 `Esc` 或 `q` 返回提示。

## 清除对话

在两秒内按两次 `Ctrl+L` 运行 `/clear` 并开始新对话。第一次按键重绘屏幕并显示提示；第二次按键清除对话。在 macOS 上，双击 `Cmd+K` 也运行 `/clear`。

## 与 tmux 一起使用

全屏渲染在 tmux 内部工作，有三个注意事项。

鼠标滚轮滚动需要 tmux 的鼠标模式。如果您的 `~/.tmux.conf` 尚未启用它，添加此行并重新加载配置：

```bash theme={null}
set -g mouse on
```

没有鼠标模式时，滚轮事件发送到 tmux 而不是 Claude Code。使用 `PgUp` 和 `PgDn` 的键盘滚动在两种情况下都可以工作。如果检测到 tmux 关闭了鼠标模式，Claude Code 在启动时打印一次性提示。

全屏渲染与 iTerm2 的 tmux 集成模式不兼容，即使用 `tmux -CC` 进入的模式。在集成模式中，iTerm2 将每个 tmux 窗格渲染为原生分割而不是让 tmux 绘制到终端。备用屏幕缓冲区和鼠标跟踪在那里无法正常工作：鼠标滚轮无效，双击可能损坏终端状态。不要在 `tmux -CC` 会话中启用全屏渲染。iTerm2 内部的常规 tmux（不带 `-CC`）工作正常。

tmux 不支持同步输出，因此您可能在重绘期间看到比直接在终端中运行 Claude Code 时更多的闪烁。如果闪烁明显（特别是通过 SSH），在 tmux 外的自己的终端标签中运行 Claude Code。

## 保持原生文本选择

鼠标捕获是最常见的摩擦点，特别是在 SSH 上或 tmux 内部。当 Claude Code 捕获鼠标事件时，您终端的原生选择复制停止工作。您通过点击拖动进行的选择存在于 Claude Code 内部，而不是终端的选择缓冲区中，因此 tmux 复制模式、Kitty hints 和类似工具看不到它。

Claude Code 尝试将选择写入剪贴板，但使用的路径取决于您的设置。在 tmux 内部，它写入 tmux 粘贴缓冲区。通过 SSH 时，它回退到 OSC 52 转义序列，某些终端默认阻止它们。iTerm2 阻止它们直到您打开 Settings -> General -> Selection -> Applications in terminal may access clipboard。在 iTerm2 中运行 [`/terminal-setup`](/cn/terminal-config) 会为您启用此功能。每次复制后 Claude Code 打印一个 toast 告诉您使用了哪个路径。

对于一次性原生选择，在点击拖动时按住终端的旁路修饰键：iTerm2 中是 `Option`，大多数 Linux 和 Windows 终端中是 `Shift`。修饰键告诉终端自行处理选择而不是将鼠标事件转发给 Claude Code，因此 `Cmd+C` 和终端的其他复制快捷键可以对它使用。

如果您始终依赖原生选择，设置 `CLAUDE_CODE_DISABLE_MOUSE=1` 退出鼠标捕获同时保持无闪烁渲染和平坦内存：

```bash theme={null}
CLAUDE_CODE_NO_FLICKER=1 CLAUDE_CODE_DISABLE_MOUSE=1 claude
```

禁用鼠标捕获后，使用 `PgUp`、`PgDn`、`Ctrl+Home` 和 `Ctrl+End` 的键盘滚动仍然有效，您的终端原生处理选择。您失去了在 Claude Code 内部点击定位光标、点击展开工具输出、URL 点击和滚轮滚动功能。

## 研究预览

全屏渲染是研究预览功能。它已在常见终端模拟器上测试，但您可能在不太常见的终端或异常配置上遇到渲染问题。

如果遇到问题，在 Claude Code 中运行 `/feedback` 报告，或在 [claude-code GitHub 仓库](https://github.com/anthropics/claude-code/issues)上打开 issue。请包含您的终端模拟器名称和版本。

要关闭全屏渲染，运行 `/tui default`，或如果您通过设置 `CLAUDE_CODE_NO_FLICKER` 启用它则取消设置。要强制使用经典渲染器（无论保存的 `tui` 设置如何），设置 `CLAUDE_CODE_DISABLE_ALTERNATE_SCREEN=1`。经典渲染器将对话保持在终端的原生回滚中，因此 `Cmd+f` 和 tmux 复制模式照常工作。
