4 4
5# 为 Claude Code 配置您的终端5# 为 Claude Code 配置您的终端
6 6
7> 修复 Shift+Enter 以实现换行、在 Claude 完成时获得终端铃声、配置 tmux、匹配颜色主题,以及在 Claude Code CLI 中启用 Vim 模式。7> 修复 Shift+Enter 以插入新行、在 Claude 完成时获得终端铃声、配置 tmux、匹配颜色主题,以及在 Claude Code CLI 中启用 Vim 模式。
8 8
9Claude Code 在任何终端中都可以无需配置而工作。此页面适用于当某些特定功能的行为不符合您的预期时。在下面找到您的症状。如果一切都已经感觉正确,您不需要此页面。9Claude Code 可以在任何终端中工作,无需配置。此页面适用于某些特定功能的行为不符合您预期的情况。在下方找到您的症状。如果一切都已按预期工作,您不需要此页面。
10 10
11* [Shift+Enter 提交而不是插入换行](#enter-multiline-prompts)11* [Shift+Enter 提交而不是插入新行](#enter-multiline-prompts)
12* [Option 键快捷键在 macOS 上无效](#enable-option-key-shortcuts-on-macos)12* [macOS 上的 Option 键快捷键无效](#enable-option-key-shortcuts-on-macos)
13* [Claude 完成时没有声音或警报](#get-a-terminal-bell-or-notification)13* [Claude 完成时没有声音或警报](#get-a-terminal-bell-or-notification)
14* [您在 tmux 内运行 Claude Code](#configure-tmux)14* [您在 tmux 内运行 Claude Code](#configure-tmux)
15* [Windows 上的退格键删除整个单词](#fix-backspace-deleting-a-whole-word-on-windows)
15* [显示闪烁或滚动条跳跃](#switch-to-fullscreen-rendering)16* [显示闪烁或滚动条跳跃](#switch-to-fullscreen-rendering)
16* [您想在提示符中使用 Vim 快捷键](#edit-prompts-with-vim-keybindings)17* [您想在提示符中使用 Vim 快捷键](#edit-prompts-with-vim-keybindings)
17 18
18此页面是关于让您的终端向 Claude Code 发送正确的信号。要更改 Claude Code 本身响应的快捷键,请改为参阅[快捷键](/zh-CN/keybindings)。19此页面是关于让您的终端向 Claude Code 发送正确的信号。要更改 Claude Code 本身响应的快捷键,请参阅 [快捷键](/docs/zh-CN/keybindings) 代替。
19 20
20<h2 id="enter-multiline-prompts">21<h2 id="enter-multiline-prompts">
21 输入多行提示符22 输入多行提示
22</h2>23</h2>
23 24
24按 Enter 提交您的消息。要添加换行符而不提交,请按 Ctrl+J,或输入 `\` 然后按 Enter。两者都在每个终端中工作,无需设置。25按 Enter 键提交您的消息。要添加换行符而不提交,请按 Ctrl+J,或输入 `\` 然后按 Enter。两种方法在每个终端中都可以工作,无需任何设置。
25 26
26在大多数终端中,您也可以按 Shift+Enter,但支持因终端模拟器而异:27在大多数终端中,您也可以按 Shift+Enter,但支持因终端模拟器而异:
27 28
31| VS Code、Cursor、Devin Desktop、Alacritty、Zed | 运行一次 `/terminal-setup` |32| VS Code、Cursor、Devin Desktop、Alacritty、Zed | 运行一次 `/terminal-setup` |
32| gnome-terminal、JetBrains IDE(如 PyCharm 和 Android Studio) | 不可用;使用 Ctrl+J 或 `\` 然后 Enter |33| gnome-terminal、JetBrains IDE(如 PyCharm 和 Android Studio) | 不可用;使用 Ctrl+J 或 `\` 然后 Enter |
33 34
34对于 VS Code、Cursor、Devin Desktop、Alacritty 和 Zed,`/terminal-setup` 将 Shift+Enter 和其他快捷键写入终端的配置文件。现有的绑定保持不变;如果您看到诸如 `VSCode terminal Shift+Enter key binding already configured` 之类的消息,则未进行任何更改。在主机终端中直接运行 `/terminal-setup` 而不是在 tmux 或 screen 内运行,因为它需要写入主机终端的配置。35对于 VS Code、Cursor、Devin Desktop、Alacritty 和 Zed,`/terminal-setup` 会将 Shift+Enter 快捷键写入终端的配置文件。在第一次运行时,您会看到确认消息,例如 `Installed VSCode terminal Shift+Enter key binding`。现有绑定保持不变;如果您看到类似 `VSCode terminal Shift+Enter key binding already configured` 的消息,则未进行任何更改。在主机终端中直接运行 `/terminal-setup`,而不是在 tmux 或 screen 内运行,因为它需要写入主机终端的配置。
35 36
36在 VS Code、Cursor 和 Devin Desktop 中,`/terminal-setup` 还会更新两个编辑器设置:它将 `terminal.integrated.gpuAcceleration` 设置为 `"off"` 以防止集成终端中的文本乱码,并设置 `terminal.integrated.mouseWheelScrollSensitivity` 以在[全屏模式](/zh-CN/fullscreen)中实现更平滑的滚动。要撤销 GPU 加速更改,请将其设置回 `"auto"` 并重新加载编辑器窗口。37在 VS Code、Cursor 和 Devin Desktop 中,`/terminal-setup` 还会更新两个编辑器设置:它将 `terminal.integrated.gpuAcceleration` 设置为 `"off"` 以防止集成终端中的文本乱码,并设置 `terminal.integrated.mouseWheelScrollSensitivity` 以在[全屏模式](/docs/zh-CN/fullscreen)中实现更平滑的滚动。要撤销 GPU 加速更改,请将其设置回 `"auto"` 并重新加载编辑器窗口。
38
39在 Zed 中,`/terminal-setup` 会就地更新您的 `keymap.json`:
40
41* 如果 keymap 已有绑定且其中没有 Terminal `shift-enter`,Claude Code 首先会将其备份到同一目录中的副本,例如 `keymap.json.1a2b3c4d.bak`,然后将 Shift+Enter 绑定合并到您的 keymap 中,保留您的其他快捷键和注释
42* 如果 Claude Code 无法读取或解析 keymap、无法备份或无法验证合并结果,它会[保持文件不变并打印快捷键块供您自己添加](/docs/zh-CN/errors#terminal-setup-left-your-zed-keymap-unchanged)
37 43
38如果您在 tmux 内运行,即使外部终端支持,Shift+Enter 也需要下面的 [tmux 配置](#configure-tmux)。44如果您在 tmux 内运行,即使外部终端支持,Shift+Enter 也需要下面的 [tmux 配置](#configure-tmux)。
39 45
40要将换行绑定到不同的快捷键,或交换行为使 Enter 插入换行而 Shift+Enter 提交,请在您的[快捷键](/zh-CN/keybindings)文件中映射 `chat:newline` 和 `chat:submit` 操作。46要将换行绑定到不同的键,或交换行为使 Enter 插入换行而 Shift+Enter 提交,请在您的[快捷键文件](/docs/zh-CN/keybindings)中映射 `chat:newline` 和 `chat:submit` 操作。
41 47
42<h2 id="enable-option-key-shortcuts-on-macos">48<h2 id="enable-option-key-shortcuts-on-macos">
43 在 macOS 上启用 Option 快捷键49 在 macOS 上启用 Option 键快捷键
44</h2>50</h2>
45 51
46某些 Claude Code 快捷键使用 Option 键,例如 Option+Enter 换行或 Option+P 切换模型。在 macOS 上,大多数终端默认不将 Option 作为修饰符发送,因此这些快捷键在您启用它之前无效。此终端设置通常标记为"使用 Option 作为 Meta 键";Meta 是现在标记为 Option 或 Alt 的快捷键的历史 Unix 名称。52某些 Claude Code 快捷键使用 Option 键,例如 Option+Enter 用于换行或 Option+P 用于切换模型。在 macOS 上,大多数终端默认不会将 Option 作为修饰符发送,因此这些快捷键在启用之前不会起作用。终端设置通常标记为"Use Option as Meta Key";Meta 是现在标记为 Option 或 Alt 的键的历史 Unix 名称。
47 53
48<Tabs>54<Tabs>
49 <Tab title="Apple Terminal">55 <Tab title="Apple Terminal">
50 打开设置 → 配置文件 → 键盘并勾选"使用 Option 作为 Meta 键"。56 打开"设置"→"配置文件"→"键盘"并勾选"Use Option as Meta Key"。
57
58 如果您接受了 Claude Code 的首次运行终端设置提示,这已经完成。该提示为您运行 `/terminal-setup`,它启用 Option 作为 Meta 并在您的 Apple Terminal 配置文件中关闭可听见的铃声。
51 59
52 如果您接受了 Claude Code 的首次运行提示,该提示提供了"Option+Enter 换行和视觉铃声",这已经完成。该提示为您运行 `/terminal-setup`,它在您的 Apple Terminal 配置文件中启用 Option 作为 Meta 并将音频铃声切换为视觉屏幕闪烁。60 在[屏幕阅读器模式](/docs/zh-CN/accessibility)中,`/terminal-setup` 保持铃声设置不变,以便终端铃声保持可听见。在 v2.1.211 之前,`/terminal-setup` 即使在屏幕阅读器模式下也会关闭铃声。如果较早的运行关闭了铃声,请在"设置"→"配置文件"→"高级"→"可听见的铃声"下将其重新打开。
53 </Tab>61 </Tab>
54 62
55 <Tab title="iTerm2">63 <Tab title="iTerm2">
56 打开设置 → 配置文件 → 快捷键 → 常规并将左 Option 快捷键和右 Option 快捷键设置为"Esc+"。64 打开"设置"→"配置文件"→"键"→"常规"并将"Left Option key"和"Right Option key"设置为"Esc+"。
57 65
58 在 iTerm2 中运行 `/terminal-setup` 会在设置 → 常规 → 选择下启用"终端中的应用程序可以访问剪贴板",以便 `/copy` 命令可以写入您的系统剪贴板。该命令即使在 tmux 内运行时也能检测到 iTerm2。重启 iTerm2 以使更改生效。66 在 iTerm2 中运行 `/terminal-setup` 会在"设置"→"常规"→"选择"下启用"Applications in terminal may access clipboard",以便 `/copy` 命令可以写入您的系统剪贴板。该命令即使在 tmux 内运行时也能检测到 iTerm2。重启 iTerm2 以使更改生效。
59 </Tab>67 </Tab>
60 68
61 <Tab title="VS Code">69 <Tab title="VS Code">
62 将 `"terminal.integrated.macOptionIsMeta": true` 添加到您的 VS Code 设置。70 将 `"terminal.integrated.macOptionIsMeta": true` 添加到您的 VS Code 设置中。
63 </Tab>71 </Tab>
64</Tabs>72</Tabs>
65 73
69 获取终端铃声或通知77 获取终端铃声或通知
70</h2>78</h2>
71 79
72当 Claude 完成任务或暂停以获得权限提示时,它会触发通知事件。将其显示为终端铃声或桌面通知可让您在长任务运行时切换到其他工作。80当 Claude 完成任务或暂停以等待权限提示,且您似乎离开了终端时,它会触发通知事件。请参阅[每种通知类型何时触发](/docs/zh-CN/hooks#notification)以了解确切的时间。将其显示为终端铃声或桌面通知可让您在长任务运行时切换到其他工作。
73 81
74默认情况下,Claude Code 仅在 Ghostty、Kitty 和 iTerm2 中发送桌面通知。在其他终端中,将 [`preferredNotifChannel`](/zh-CN/settings#available-settings) 设置为 `"terminal_bell"` 以改为响铃终端铃声,或配置[通知钩子](#play-a-sound-with-a-notification-hook)以获得自定义声音或命令。82默认情况下,Claude Code 仅在 Ghostty、Kitty 和 iTerm2 中发送桌面通知。在其他终端中,将 [`preferredNotifChannel`](/docs/zh-CN/settings-reference#preferrednotifchannel) 设置为 `"terminal_bell"` 以改为响铃终端铃声,或配置[通知 hook](#play-a-sound-with-a-notification-hook) 以获得自定义声音或命令。以下设置条目打开终端铃声:
75 83
76桌面通知通过 SSH 到达您的本地机器,因此远程会话仍然可以提醒您。Ghostty 和 Kitty 无需进一步设置即可将其转发到您的 OS 通知中心。iTerm2 要求您启用转发:84```json ~/.claude/settings.json theme={null}
85{
86 "preferredNotifChannel": "terminal_bell"
87}
88```
89
90桌面通知通过 SSH 到达您的本地计算机,因此远程会话仍然可以提醒您。Ghostty 和 Kitty 将其转发到您的操作系统通知中心,无需进一步设置。iTerm2 要求您启用转发:
77 91
78<Steps>92<Steps>
79 <Step title="打开 iTerm2 通知设置">93 <Step title="打开 iTerm2 通知设置">
80 转到设置 → 配置文件 → 终端。94 转到"设置"→"配置文件"→"终端"。
81 </Step>95 </Step>
82 96
83 <Step title="启用警报">97 <Step title="启用警报">
84 勾选"通知中心警报",然后单击"过滤警报"并启用"发送转义序列生成的警报"。98 勾选"通知中心警报",然后单击"筛选警报"并启用"发送转义序列生成的警报"。
85 </Step>99 </Step>
86</Steps>100</Steps>
87 101
88如果通知仍未出现,请确认您的终端应用程序在您的 OS 设置中具有通知权限,如果您在 tmux 内运行,请[启用直通](#configure-tmux)。102如果通知仍未出现,请确认您的终端应用程序在操作系统设置中具有通知权限,如果您在 tmux 内运行,请[启用传递](#configure-tmux)。
89 103
90<h3 id="play-a-sound-with-a-notification-hook">104<h3 id="play-a-sound-with-a-notification-hook">
91 使用通知钩子播放声音105 使用通知 hook 播放声音
92</h3>106</h3>
93 107
94在任何终端中,您可以配置[通知钩子](/zh-CN/hooks-guide#get-notified-when-claude-needs-input)以在 Claude 需要您的注意时播放声音或运行自定义命令。钩子与内置通知一起运行,而不是替代它,因此不接收桌面通知的终端(如 Warp 或 VS Code 集成终端)可以使用钩子或将 `preferredNotifChannel` 设置为 `"terminal_bell"` 代替。108在任何终端中,您可以配置[通知 hook](/docs/zh-CN/hooks-guide#get-notified-when-claude-needs-input) 以在 Claude 需要您的注意时播放声音或运行自定义命令。Hook 与内置通知一起运行,而不是替换它,因此不接收桌面通知的终端(如 Warp 或 VS Code 集成终端)可以使用 hook 或将 `preferredNotifChannel` 设置为 `"terminal_bell"`。
95 109
96下面的示例在 macOS 上播放系统声音。链接的指南包含 macOS、Linux 和 Windows 的桌面通知命令。110下面的示例在 macOS 上播放系统声音。链接的指南包含 macOS、Linux 和 Windows 的桌面通知命令。
97 111
111 配置 tmux125 配置 tmux
112</h2>126</h2>
113 127
114当 Claude Code 在 tmux 内运行时,默认情况下两件事会中断:Shift+Enter 提交而不是插入换行,桌面通知和[进度条](/zh-CN/settings#available-settings)永远无法到达外部终端。将这些行添加到 `~/.tmux.conf`,然后运行 `tmux source-file ~/.tmux.conf` 将它们应用到运行的服务器:128当 Claude Code 在 tmux 中运行时,默认情况下会出现两个问题:Shift+Enter 提交而不是插入换行符,桌面通知和[进度条](/docs/zh-CN/settings-reference#terminalprogressbarenabled)永远无法到达外部终端。将这些行添加到 `~/.tmux.conf`,然后运行 `tmux source-file ~/.tmux.conf` 将其应用到运行中的服务器:
115 129
116```bash ~/.tmux.conf theme={null}130```bash ~/.tmux.conf theme={null}
117set -g allow-passthrough on131set -g allow-passthrough on
119set -as terminal-features 'xterm*:extkeys'133set -as terminal-features 'xterm*:extkeys'
120```134```
121 135
122`allow-passthrough` 行让通知和进度更新到达外部终端,而不是被 tmux 吞没。`extended-keys` 行让 tmux 区分 Shift+Enter 和纯 Enter,以便换行快捷键工作。136`allow-passthrough` 行允许通知和进度更新到达外部终端,而不是被 tmux 吞掉。`extended-keys` 行让 tmux 区分 Shift+Enter 和普通 Enter,这样换行快捷键就能工作。
137
138<h2 id="fix-backspace-deleting-a-whole-word-on-windows">
139 修复 Windows 上 Backspace 删除整个单词的问题
140</h2>
141
142在 Windows 上,Claude Code 将到达的 Backspace 读取为 `^H`,将其解释为 Ctrl+Backspace,这会[删除前一个单词](/docs/zh-CN/interactive-mode#text-editing),除非 `TERM_PROGRAM` 是 `mintty` 或 `TERM` 是 `cygwin`。在 macOS 和 Linux 上,Claude Code 将其读取为普通 Backspace。
143
144如果每次按 Backspace 都会删除整个单词,说明你的终端为普通 Backspace 发送了 `^H`。设置 [`CLAUDE_CODE_BS_AS_CTRL_BACKSPACE=0`](/docs/zh-CN/env-vars)。此时 Backspace 和 Ctrl+H 将各删除一个字符。如果在 macOS 或 Linux 上 Ctrl+Backspace 仅删除一个字符,因为你的终端为它发送了 `^H`,则改为将变量设置为 `1`。
123 145
124<h2 id="match-the-color-theme">146<h2 id="match-the-color-theme">
125 匹配颜色主题147 匹配颜色主题
126</h2>148</h2>
127 149
128使用 `/theme` 命令或 `/config` 中的主题选择器来选择与您的终端匹配的 Claude Code 主题。选择自动选项会检测您的终端的浅色或深色背景,因此主题会在您的终端执行时跟随 OS 外观更改。Claude Code 不控制终端自己的颜色方案,该方案由终端应用程序设置。150使用 `/theme` 命令或 `/config` 中的主题选择器,选择与您的终端相匹配的 Claude Code 主题。选择自动选项可检测您的终端的浅色或深色背景,因此主题会在您的终端跟随操作系统外观更改时进行更改。Claude Code 不控制终端本身的配色方案,该方案由终端应用程序设置。
129 151
130要自定义界面底部显示的内容,请配置[自定义状态行](/zh-CN/statusline),显示当前模型、工作目录、git 分支或其他上下文。152要自定义界面底部显示的内容,请配置一个[自定义状态行](/docs/zh-CN/statusline),显示当前模型、工作目录、git 分支或其他上下文。
131 153
132<h3 id="create-a-custom-theme">154<h3 id="create-a-custom-theme">
133 创建自定义主题155 创建自定义主题
134</h3>156</h3>
135 157
136<Note>158除了内置预设外,`/theme` 还列出您定义的任何自定义主题以及由已安装的[插件](/docs/zh-CN/plugins-reference#themes)贡献的任何主题。选择列表末尾的\*\*新建自定义主题…\*\*以交互方式创建一个:您命名主题,然后选择要覆盖的各个颜色令牌。当自定义主题突出显示时,按 `Ctrl+E` 可编辑它。
137 自定义主题需要 Claude Code v2.1.118 或更高版本。
138</Note>
139 159
140除了内置预设外,`/theme` 还列出您定义的任何自定义主题以及已安装的 [plugins](/zh-CN/plugins-reference#themes) 贡献的任何主题。选择列表末尾的\*\*新建自定义主题…\*\*以交互方式创建一个:您命名主题,然后选择要覆盖的各个颜色令牌。当自定义主题突出显示时,按 `Ctrl+E` 来编辑它。160每个自定义主题都是 `~/.claude/themes/` 中的一个 JSON 文件。不带 `.json` 扩展名的文件名是主题的 slug,选择主题会将 `custom:<slug>` 存储为您的主题偏好设置。该文件有三个可选字段:
141
142每个自定义主题都是 `~/.claude/themes/` 中的 JSON 文件。不带 `.json` 扩展名的文件名是主题的 slug,选择主题会将 `custom:<slug>` 存储为您的主题偏好设置。该文件有三个可选字段:
143 161
144| 字段 | 类型 | 描述 |162| 字段 | 类型 | 描述 |
145| :---------- | :----- | :-------------------------------------------------------------------------------------------------- |163| :---------- | :----- | :-------------------------------------------------------------------------------------------------- |
149 167
150颜色值接受 `#rrggbb`、`#rgb`、`rgb(r,g,b)`、`ansi256(n)` 或 `ansi:<name>`,其中 `<name>` 是 16 个标准 ANSI 颜色名称之一,例如 `red` 或 `cyanBright`。未知令牌和无效颜色值会被忽略,因此拼写错误不会破坏渲染。168颜色值接受 `#rrggbb`、`#rgb`、`rgb(r,g,b)`、`ansi256(n)` 或 `ansi:<name>`,其中 `<name>` 是 16 个标准 ANSI 颜色名称之一,例如 `red` 或 `cyanBright`。未知令牌和无效颜色值会被忽略,因此拼写错误不会破坏渲染。
151 169
152以下示例定义了一个保留深色预设但重新着色提示符强调、错误文本和成功文本的主题:170以下示例定义了一个主题,该主题保留深色预设但重新着色提示符强调、错误文本和成功文本:
153 171
154```json ~/.claude/themes/dracula.json theme={null}172```json ~/.claude/themes/dracula.json theme={null}
155{173{
163}181}
164```182```
165 183
166Claude Code 监视 `~/.claude/themes/` 并在文件更改时重新加载,因此在您的编辑器中所做的编辑会应用到正在运行的会话中,无需重新启动。184Claude Code 监视 `~/.claude/themes/` 并在添加或更改文件时重新加载,因此在编辑器中所做的编辑会应用到正在运行的会话,无需重启。如果 Claude Code 启动时 `~/.claude/themes/` 文件夹本身不存在,请在创建第一个主题文件后重启一次。之后,更改会应用而无需重启。
167 185
168以下参考涵盖了您可以在 `overrides` 中设置的令牌。`/theme` 中的交互式编辑器显示相同的令牌,并带有实时预览,以及一些单一用途的强调,例如此处未涵盖的入门屏幕颜色。186下面的参考涵盖了您可以在 `overrides` 中设置的令牌。`/theme` 中的交互式编辑器显示相同的令牌以及实时预览,加上一些单一用途的强调,例如此处省略的入门屏幕颜色。
169 187
170<Accordion title="颜色令牌参考">188<Accordion title="颜色令牌参考">
171 以下示例结合了以下几个组中的令牌:品牌强调、Plan Mode 边框、diff 背景和全屏消息背景。189 以下示例结合了下面几个组中的令牌:品牌强调、Plan Mode 边框、diff 背景和消息背景。
172 190
173 ```json ~/.claude/themes/midnight.json theme={null}191 ```json ~/.claude/themes/midnight.json theme={null}
174 {192 {
205 状态颜色223 状态颜色
206 </h4>224 </h4>
207 225
208 在消息和指示器中发出成功、失败和警告状态信号。226 在消息和指示器中发出成功、失败和警告状态的信号。
209 227
210 | 令牌 | 控制 |228 | 令牌 | 控制 |
211 | :-------- | :------------- |229 | :-------- | :------------- |
221 设置输入框边框颜色和权限模式或指示器处于活动状态时显示的强调。239 设置输入框边框颜色和权限模式或指示器处于活动状态时显示的强调。
222 240
223 | 令牌 | 控制 |241 | 令牌 | 控制 |
224 | :------------- | :--------------------- |242 | :------------- | :--------------------------------------------------------------------------------------------------------------------- |
225 | `promptBorder` | 默认权限模式下的输入框边框 |243 | `promptBorder` | Manual mode 中的输入框边框 |
226 | `planMode` | Plan Mode 强调和边框 |244 | `planMode` | Plan Mode 强调和边框 |
227 | `autoAccept` | 接受编辑模式强调和边框 |245 | `autoAccept` | Accept-edits mode 强调和边框 |
228 | `bashBorder` | 输入 `!` shell 命令时的输入框边框 |246 | `bashBorder` | 输入 `!` shell 命令时的输入框边框 |
229 | `ide` | IDE 连接指示器 |247 | `ide` | IDE 连接指示器 |
230 | `fastMode` | 快速模式指示器 |248 | `fastMode` | Fast mode 指示器 |
249 | `effortUltra` | 当[ultracode](/docs/zh-CN/model-config#adjust-effort-level)打开时输入框边框上的 `ultracode` 标签。您对此颜色的覆盖在 Claude Code v2.1.239 或更高版本上生效 |
231 250
232 <h4 id="diff-rendering">251 <h4 id="diff-rendering">
233 Diff 渲染252 Diff 渲染
234 </h4>253 </h4>
235 254
236 在文件编辑和审查中为添加和删除的代码着色。255 在文件编辑和审查中着色添加和删除的代码。
237 256
238 | 令牌 | 控制 |257 | 令牌 | 控制 |
239 | :------------------ | :------------- |258 | :------------------ | :----------------------- |
240 | `diffAdded` | 添加行的背景 |259 | `diffAdded` | 添加行的背景 |
241 | `diffRemoved` | 删除行的背景 |260 | `diffRemoved` | 删除行的背景 |
242 | `diffAddedDimmed` | 添加行附近未更改上下文的背景 |261 | `diffAddedDimmed` | 您拒绝编辑后显示的变暗 diff 中添加行的背景 |
243 | `diffRemovedDimmed` | 删除行附近未更改上下文的背景 |262 | `diffRemovedDimmed` | 您拒绝编辑后显示的变暗 diff 中删除行的背景 |
244 | `diffAddedWord` | 添加行内的字级突出显示 |263 | `diffAddedWord` | 添加行内的字级突出显示 |
245 | `diffRemovedWord` | 删除行内的字级突出显示 |264 | `diffRemovedWord` | 删除行内的字级突出显示 |
246 265
248 全屏模式267 全屏模式
249 </h4>268 </h4>
250 269
251 仅在[全屏渲染模式](/zh-CN/fullscreen)中应用,其中消息具有背景填充。270 Claude Code 在默认和全屏渲染器中都绘制 `userMessageBackground`、`bashMessageBackgroundColor` 和 `memoryBackgroundColor`。它仅在[全屏渲染模式](/docs/zh-CN/fullscreen)中使用 `userMessageBackgroundHover` 和 `selectionBg`。
252 271
253 | 令牌 | 控制 |272 | 令牌 | 控制 |
254 | :--------------------------- | :----------------------- |273 | :--------------------------- | :----------------------- |
255 | `userMessageBackground` | 成绩单中您的消息后面的背景 |274 | `userMessageBackground` | 成绩单中您的消息后面的背景 |
256 | `userMessageBackgroundHover` | 成绩单中悬停或展开消息时消息后面的背景 |275 | `userMessageBackgroundHover` | 悬停或展开消息时消息后面的背景 |
257 | `messageActionsBackground` | 操作栏打开时所选消息后面的背景 |
258 | `bashMessageBackgroundColor` | 成绩单中 `!` shell 命令条目后面的背景 |276 | `bashMessageBackgroundColor` | 成绩单中 `!` shell 命令条目后面的背景 |
259 | `memoryBackgroundColor` | 成绩单中 `#` 内存条目后面的背景 |277 | `memoryBackgroundColor` | 成绩单中 `#` 内存条目后面的背景 |
260 | `selectionBg` | 用鼠标选择的文本的背景 |278 | `selectionBg` | 用鼠标选择的文本的背景 |
261 279
262 <h4 id="usage-meter-and-speaker-labels">280 <h4 id="usage-meter-and-speaker-labels">
263 使用量计量器和发言人标签281 使用量计量表和说话者标签
264 </h4>282 </h4>
265 283
266 调整 `/usage` 视图中显示的条形图以及区分您的消息和 Claude 消息的标签。284 调整 `/usage` 视图中显示的条形图和区分您的消息与 Claude 消息的标签。
267 285
268 | 令牌 | 控制 |286 | 令牌 | 控制 |
269 | :----------------- | :-------------------- |287 | :----------------- | :------------------- |
270 | `rate_limit_fill` | 使用量计量器的填充部分 |288 | `rate_limit_fill` | 使用量计量表的填充部分 |
271 | `rate_limit_empty` | 使用量计量器的未填充部分 |289 | `rate_limit_empty` | 使用量计量表的未填充部分 |
272 | `briefLabelYou` | 您的消息上的 `You` 标签的颜色 |290 | `briefLabelYou` | 您的消息上 `You` 标签的颜色 |
273 | `briefLabelClaude` | 助手消息上的 `Claude` 标签的颜色 |291 | `briefLabelClaude` | 助手消息上 `Claude` 标签的颜色 |
274 292
275 <h4 id="shimmer-variants-and-subagent-colors">293 <h4 id="shimmer-variants-and-subagent-colors">
276 微光变体和子代理颜色294 微光变体和子代理颜色
277 </h4>295 </h4>
278 296
279 多个令牌具有配对的微光变体,提供微调器动画梯度中使用的较浅颜色。如果动画看起来不匹配,请与其基础令牌一起覆盖微光。297 几个令牌有一个配对的微光变体,提供微调器的动画梯度中使用的较浅颜色。如果动画看起来不匹配,请与其基础令牌一起覆盖微光。
280 298
281 * `claude` 和 `claudeShimmer`299 * `claude` 和 `claudeShimmer`
282 * `warning` 和 `warningShimmer`300 * `warning` 和 `warningShimmer`
285 * `inactive` 和 `inactiveShimmer`303 * `inactive` 和 `inactiveShimmer`
286 * `fastMode` 和 `fastModeShimmer`304 * `fastMode` 和 `fastModeShimmer`
287 305
288 每个[子代理](/zh-CN/sub-agents)和并行任务以八种命名颜色之一显示,以便您可以在成绩单中区分它们。令牌名称遵循 `<color>_FOR_SUBAGENTS_ONLY` 的模式,其中 `<color>` 是 `red`、`blue`、`green`、`yellow`、`purple`、`orange`、`pink` 或 `cyan`。覆盖这些以更改每个命名颜色的外观。例如,定义中具有 `color: blue` 的子代理使用 `blue_FOR_SUBAGENTS_ONLY` 值绘制。306 每个[子代理](/docs/zh-CN/sub-agents)和并行任务以八个命名颜色之一显示,以便您可以在成绩单中区分它们。令牌名称遵循 `<color>_FOR_SUBAGENTS_ONLY` 的模式,其中 `<color>` 是 `red`、`blue`、`green`、`yellow`、`purple`、`orange`、`pink` 或 `cyan`。覆盖这些以更改每个命名颜色的外观。例如,定义中具有 `color: blue` 的子代理使用 `blue_FOR_SUBAGENTS_ONLY` 值绘制。
289 307
290 [`ultrathink`](/zh-CN/model-config#use-ultrathink-for-one-off-deep-reasoning) 和 [`ultraplan`](/zh-CN/ultraplan) 关键字在提示输入中使用七色彩虹梯度渲染。令牌名称遵循 `rainbow_<color>` 和 `rainbow_<color>_shimmer` 的模式,其中 `<color>` 是 `red`、`orange`、`yellow`、`green`、`blue`、`indigo` 或 `violet`。308 Claude Code 在提示输入中使用七色彩虹梯度渲染[`ultrathink`](/docs/zh-CN/model-config#use-ultrathink-for-one-off-deep-reasoning)关键字。令牌名称遵循 `rainbow_<color>` 和 `rainbow_<color>_shimmer` 的模式,其中 `<color>` 是 `red`、`orange`、`yellow`、`green`、`blue`、`indigo` 或 `violet`。
291</Accordion>309</Accordion>
292 310
293<h2 id="switch-to-fullscreen-rendering">311<h2 id="switch-to-fullscreen-rendering">
294 切换到全屏渲染312 切换到全屏渲染
295</h2>313</h2>
296 314
297如果显示闪烁或在 Claude 工作时滚动位置跳跃,请切换到[全屏渲染模式](/zh-CN/fullscreen)。它绘制到终端为全屏应用程序保留的单独屏幕,而不是附加到您的正常滚动条,这保持内存使用平稳并为滚动和选择添加鼠标支持。在此模式下,您使用鼠标或 PageUp 在 Claude Code 内滚动,而不是使用您的终端的本机滚动条;请参阅[全屏页面](/zh-CN/fullscreen#search-and-review-the-conversation)了解如何搜索和复制。315在[屏幕阅读器模式](/docs/zh-CN/accessibility)中,本部分不适用。Claude Code 始终呈现为纯滚动文本,除非在附加的[后台会话](/docs/zh-CN/agent-view)中,如果您在任何其他会话中运行 `/tui fullscreen`,Claude Code 会打印说明而不是切换。
316
317如果显示闪烁或在 Claude 工作时滚动位置跳跃,请切换到[全屏渲染模式](/docs/zh-CN/fullscreen)。在此模式下,您可以使用鼠标或 PageUp 在 Claude Code 内滚动,而不是使用终端的原生回滚;请参阅[全屏页面](/docs/zh-CN/fullscreen#search-and-review-the-conversation)了解如何搜索和复制。
298 318
299如果闪烁是唯一的问题,且您的终端支持同步输出但未被自动检测,例如 Emacs `eat`,请设置 [`CLAUDE_CODE_FORCE_SYNC_OUTPUT=1`](/zh-CN/env-vars) 以停止闪烁而不改变渲染器。319如果闪烁是唯一的问题,且您的终端支持同步输出但未被自动检测(例如 Emacs `eat`),请设置 [`CLAUDE_CODE_FORCE_SYNC_OUTPUT=1`](/docs/zh-CN/env-vars) 以停止闪烁而不更改渲染器。
300 320
301运行 `/tui fullscreen` 以切换并保存偏好设置。您的对话将完整重新启动,未来的会话将在全屏中启动。您也可以在启动 Claude Code 之前设置 `CLAUDE_CODE_NO_FLICKER` 环境变量:321运行 `/tui fullscreen` 以切换并保存偏好设置。您的对话将完整重新启动,未来的会话将以全屏启动,除非[全屏启动失败](/docs/zh-CN/fullscreen#fullscreen-renderer-didnt-finish-starting)。您也可以在启动 Claude Code 之前设置 `CLAUDE_CODE_NO_FLICKER` 环境变量:
302 322
303<CodeGroup>323<CodeGroup>
304 ```bash Bash and Zsh theme={null}324 ```bash Bash and Zsh theme={null}
322 粘贴大型内容342 粘贴大型内容
323</h2>343</h2>
324 344
325当您将超过 10,000 个字符粘贴到提示符中时,Claude Code 将输入折叠为 `[Pasted text]` 占位符,以便输入框保持可用。当您提交时,完整内容仍会发送给 Claude。345当您粘贴超过 800 个字符或超过三行的内容到提示框时,Claude Code 会将输入折叠为占位符,例如 `[Pasted text #1 +120 lines]`,以保持输入框的可用性。在短于 12 行的终端窗口中,行限制会降低,因此 Claude Code 在 11 行时会折叠三行粘贴,在 10 行或更少行时会折叠任何多行粘贴。Claude Code 在您提交时仍会发送完整内容。
346
347当您使用单词或行快捷键(如 `Ctrl+W` 或 `Ctrl+K`)删除,或通过 vim 删除(如 `df]` 这样的 `f`/`t` 动作),且删除范围到达占位符内部时,Claude Code 会完全移除占位符。您可以粘贴删除的内容来恢复它,在单词或行快捷键后使用 [`Ctrl+Y`](/docs/zh-CN/interactive-mode#text-editing),或在 vim 删除后使用 [`p` 在 NORMAL 模式下](/docs/zh-CN/interactive-mode#editing-normal-mode)。
348
349Claude Code 将折叠的内容保存在 `~/.claude/paste-cache/` 下,因此当您从[命令历史](/docs/zh-CN/interactive-mode#command-history)中调用提示并重新提交时,Claude Code 会再次发送完整的粘贴内容,包括在后续会话中,直到保留扫描移除缓存文件。
350
351Claude Code 删除早于 [`cleanupPeriodDays`](/docs/zh-CN/settings-reference#cleanupperioddays) 的缓存文件,遵循[保留扫描规则](/docs/zh-CN/claude-directory#cleaned-up-automatically),因此调用的提示可能引用不再存在的粘贴文本。当您提交这样的提示时,Claude Code 永远不会发送字面上的 `[Pasted text #N]` 字符串,而是显示一个通知,命名缺失的粘贴:
352
353* 在包含剩余文本的纯提示中,Claude Code 移除占位符并发送剩余文本。
354* 在[shell 模式](/docs/zh-CN/interactive-mode#shell-mode-with-prefix)命令或 `/` 命令中,其中移除会改变运行内容,以及在任何移除会留下空白的提示中,Claude Code 取消提交并在输入中保留原始文本,占位符仍在其中。删除占位符或编辑命令,然后重新提交。
326 355
327VS Code 集成终端可能会在非常大的粘贴中丢弃字符,然后才能到达 Claude Code,因此在那里更喜欢基于文件的工作流。对于非常大的输入,例如整个文件或长日志,请将内容写入文件并要求 Claude 读取它,而不是粘贴。这保持对话记录可读,并让 Claude 在后续轮次中按路径引用文件。356VS Code 集成终端可能会在非常大的粘贴到达 Claude Code 之前丢弃字符,因此在那里更倾向于基于文件的工作流。对于非常大的输入(如整个文件或长日志),将内容写入文件并要求 Claude 读取它,而不是粘贴。这样可以保持对话记录的可读性,并让 Claude 在后续轮次中按路径引用文件。
328 357
329<h2 id="edit-prompts-with-vim-keybindings">358<h2 id="edit-prompts-with-vim-keybindings">
330 使用 Vim 快捷键编辑提示符359 使用 Vim 快捷键编辑提示词
331</h2>360</h2>
332 361
333Claude Code 包括提示符输入的 Vim 风格编辑模式。通过 `/config` → 编辑器模式启用它,或通过在 `~/.claude/settings.json` 中将 [`editorMode`](/zh-CN/settings#available-settings) 设置为 `"vim"` 来启用。将编辑器模式设置回 `normal` 以关闭它。362Claude Code 包含用于提示词输入的 Vim 风格编辑模式。通过 `/config` → Editor mode 启用它,或在 `~/.claude/settings.json` 中将 [`editorMode`](/docs/zh-CN/settings-reference#editormode) 设置为 `"vim"`。将 Editor mode 设置回 `normal` 以关闭它。
334 363
335Vim 模式支持 NORMAL 模式和 VISUAL 模式动作和运算符的子集,例如 `hjkl` 导航、`v`/`V` 选择以及 `d`/`c`/`y` 与文本对象。请参阅 [Vim 编辑器模式参考](/zh-CN/interactive-mode#vim-editor-mode)了解完整的快捷键表。364Vim 模式支持 NORMAL 和 VISUAL 模式动作和操作符的子集,例如 `hjkl` 导航、`v`/`V` 选择以及 `d`/`c`/`y` 与文本对象。有关完整的快捷键表,请参阅 [Vim 编辑器模式参考](/docs/zh-CN/interactive-mode#vim-editor-mode)。
336 365
337Vim 动作不可通过快捷键文件重新映射。要映射两个按键的 INSERT 模式序列(例如 `jj` 到 Escape),请在用户设置中设置 [`vimInsertModeRemaps`](/zh-CN/interactive-mode#remap-insert-mode-key-sequences)。366Vim 动作无法通过快捷键文件重新映射。要将两个按键的 INSERT 模式序列(例如 `jj`)映射到 Escape,请在用户设置中设置 [`vimInsertModeRemaps`](/docs/zh-CN/interactive-mode#remap-insert-mode-key-sequences)。
338 367
339在 INSERT 模式下按 Enter 仍会提交您的提示符,与标准 Vim 不同。在 NORMAL 模式下使用 `o` 或 `O`,或 Ctrl+J,来插入换行。368在 INSERT 模式下按 Enter 仍会提交您的提示词,这与标准 Vim 不同。在 NORMAL 模式下使用 `o` 或 `O`,或使用 Ctrl+J 来插入新行。
340 369
341<h2 id="related-resources">370<h2 id="related-resources">
342 相关资源371 相关资源
343</h2>372</h2>
344 373
345* [交互模式](/zh-CN/interactive-mode):完整的键盘快捷键参考和 Vim 快捷键表374* [交互模式](/docs/zh-CN/interactive-mode):完整的键盘快捷键参考和 Vim 快捷键表
346* [快捷键](/zh-CN/keybindings):重新映射任何 Claude Code 快捷键,包括 Enter 和 Shift+Enter375* [快捷键](/docs/zh-CN/keybindings):重新映射任何 Claude Code 快捷键,包括 Enter 和 Shift+Enter
347* [全屏渲染](/zh-CN/fullscreen):全屏模式下滚动、搜索和复制的详细信息376* [全屏渲染](/docs/zh-CN/fullscreen):全屏模式下滚动、搜索和复制的详细信息
348* [钩子指南](/zh-CN/hooks-guide):Linux 和 Windows 的更多通知钩子示例377* [钩子指南](/docs/zh-CN/hooks-guide):Linux 和 Windows 的更多通知钩子示例
349* [故障排除](/zh-CN/troubleshooting):修复终端配置之外的问题378* [故障排除](/docs/zh-CN/troubleshooting):修复终端配置之外的问题