Skip to main content

快捷键

快捷键可能因平台和终端而异。在全屏渲染中,在记录查看器中按 ? 查看可用的快捷键。macOS 用户:Option/Alt 键快捷键(Alt+B、Alt+F、Alt+D、Alt+Y、Alt+P)需要在终端中将 Option 配置为 Meta。请参阅在 macOS 上启用 Option 键快捷键了解每个终端中的设置。

常规控制

文本编辑

编辑快捷键中的单词边界

单词快捷键 Alt+B、Alt+F、Alt+D、Option+Delete 和 Ctrl+Backspace 将单词视为字母和数字的运行,因此标点符号(如 _、. 和 /)分隔单词。在提示中有 src/utils/foo.ts 时,重复按 Alt+B 会在 ts、foo、utils 和 src 的开始处停止。 Ctrl+W 不同:它忽略标点符号并删除回到上一个空格,因此一次按下会删除所有 src/utils/foo.ts。 在没有空格的文本中,例如中文或日文,单词快捷键仍然一次移动或删除一个单词。 这些 readline 约定适用于 Claude Code v2.1.261 及更高版本。在早期版本中打开它们的 keybindingFlavor 设置已弃用,无效。 您无法在快捷键配置文件中重新映射这些快捷键,该文件没有这些操作的操作。

主题和显示

多行输入

快速命令

记录查看器

当记录查看器打开时(使用 Ctrl+O 切换),这些快捷键可用。运行不带参数的 /tui 以检查哪个渲染器处于活动状态。Ctrl+E 可以通过 transcript:toggleShowAll 重新绑定。

语音输入

命令

在 Claude Code 中输入 / 可以查看可用的命令,或输入 / 后跟任何字母来筛选。/ 菜单列出了内置命令、捆绑的和用户编写的 skills,以及由 plugins 和 MCP servers 贡献的命令。并非所有内置命令对每个用户都可见,因为某些命令取决于您的平台或计划,而且 少数可用命令在设计上从菜单中隐藏,当您输入其全名时运行。 在 fullscreen rendering 中,/ 命令和 @ 文件建议列表也响应鼠标:悬停突出显示一行,点击接受它。 有关 Claude Code 中包含的命令的完整列表,请参阅 commands reference。

在提示中途完成命令

命令完成也适用于提示的中途:在空格后输入 /,然后输入名称的前几个字母,如 run the tests, then /com。只有名称以这些字母开头的命令才会匹配,因此文件路径(如 /tmp/notes.md)不会保持列表打开。Claude Code 仅在命令 starts your message 时自己运行命令。
  • 在 fullscreen rendering 中:匹配项在您输入时以列表形式打开,没有突出显示的行,因此 Enter 仍会按输入的方式发送您的提示。按 Tab 插入顶部匹配项,或使用箭头键和 Enter 选择一行。
  • 在 fullscreen 之外:顶部匹配项的其余部分在您的光标处显示为幽灵文本,当有更多命令匹配时显示 +2 之类的计数。按 Tab 插入唯一的匹配项,或在有多个匹配项时打开列表,然后使用箭头键和 Enter 选择一行。
在两个渲染器中,在裸露的中途 / 上按 Tab 可列出每个命令。 插件 skill 也会在其裸露名称上匹配,因此 /deploy 会找到名为 myplugin:deploy-app 的 skill。当您插入匹配项时,Claude Code 会写入完整的 /myplugin:deploy-app。

Vim 编辑器模式

通过 /config → Editor mode 启用 vim 风格编辑。 Claude Code 在你使用 Ctrl+O 切换文字记录查看器或打开和关闭面板(如 /config)时保持你的 vim 模式和光标位置。如果你在 NORMAL 模式下离开提示符,当你返回时它仍然处于 NORMAL 模式,光标位置与你离开时相同。

模式切换

重新映射 INSERT 模式快捷键序列

vimInsertModeRemaps 设置将两个按键的 INSERT 模式序列映射到 Escape,因此像 jj 这样的映射会让你返回 NORMAL 模式。需要 Claude Code v2.1.208 或更高版本。 以下 ~/.claude/settings.json 示例打开 vim 模式并将 jj 映射到 Escape:
每个键恰好是按顺序输入的两个可打印字符,"<Esc>" 是唯一支持的目标。长度或目标不同的条目会被忽略。 输入序列的第一个字符会正常插入。在一秒内按下第二个字符会移除待处理的字符并切换到 NORMAL 模式,在你的输入中不留下任何字符。在一秒窗口之后,或者如果按下不同的键,两个字符都会保留为字面文本,因此你仍然可以通过在两个键之间暂停来输入包含该序列的单词。 Claude Code 从你的用户设置文件、--settings 标志和托管设置读取此设置。项目的 .claude/settings.json 或 .claude/settings.local.json 中的条目会被忽略,因此已检出的存储库无法重新映射你的按键。
在 vim NORMAL 模式中,如果光标在输入的开始或结束处且无法进一步移动,j/k 和 ↑/↓ 会导航命令历史。在空提示符上按 ← 也会从 NORMAL 模式和 INSERT 模式打开代理视图;在 v2.1.219 之前,在空提示符上按 ← 在 NORMAL 模式下不执行任何操作。

编辑(NORMAL 模式)

文本对象(NORMAL 模式)

文本对象与 d、c 和 y 等运算符一起使用:

可视模式

按 v 进行字符级选择或按 V 进行行级选择。动作扩展选择,运算符直接作用于它。 不支持使用 Ctrl+V 的块级可视模式。

命令历史

Claude Code 保留了你输入的提示词的历史记录,上箭头回调可以从同一项目的过去会话中获取提示词:
  • 输入历史按工作目录存储
  • 运行 /clear 开始新会话:回调时会首先列出新会话的提示词,然后是较早会话的提示词。前一个会话的对话被保留,可以恢复。
  • 连续两次提交相同的提示词只记录一个历史条目,因此按上箭头会跳到前一个不同的提示词
  • 当你回调包含粘贴文本的提示词时,Claude Code 在你重新提交时会再次发送完整的粘贴内容。如果内容已被自动清理,Claude Code 不会发送字面上的 [Pasted text #N] 字符串;有关提示词发生的情况,请参阅粘贴大型内容
  • 使用 ! 的历史扩展默认被禁用

使用 Ctrl+R 进行反向搜索

按 Ctrl+R 以交互方式搜索你的命令历史。在全屏渲染中,Ctrl+R 打开搜索对话框:输入以过滤,按 Up 和 Down 在匹配项中移动,按 Ctrl+S 循环切换范围(此会话、此项目和所有项目)。按 Enter 或 Tab 将匹配项放在提示词输入中,或按 Esc 取消。下面的步骤描述经典渲染器的内联搜索:
  1. 开始搜索:按 Ctrl+R 激活反向历史搜索
  2. 输入查询:输入要在以前的命令中搜索的文本。搜索词在匹配结果中突出显示
  3. 导航匹配项:再次按 Ctrl+R 循环浏览较早的匹配项
  4. 搜索范围:内联搜索始终搜索来自所有项目的提示词
  5. 接受匹配项:
    • 按 Tab 或 Esc 接受当前匹配项并继续编辑
    • 按 Enter 接受并立即执行命令
  6. 取消搜索:
    • 按 Ctrl+C 取消并恢复你的原始输入
    • 在空搜索上按 Backspace 取消
内联搜索扫描你的完整提示词历史,最新的优先,重复项折叠到最新出现。全屏对话框在选定的范围内搜索你的整个提示词历史,最新的优先,重复项折叠到最新出现:最近的提示词立即出现,较早提示词的匹配项在 Claude Code 加载其余部分时填充。匹配的提示词显示时搜索词突出显示,因此你可以找到并重用以前的输入。 接受匹配项或取消搜索立即生效,即使 Claude Code 仍在加载历史记录。

后台 Bash 命令

Claude Code 支持在后台运行 Bash 命令,允许你在长时间运行的进程执行时继续工作。

后台运行的工作原理

当 Claude Code 在后台运行命令时,它会异步运行该命令并立即返回一个后台任务 ID。Claude Code 可以在命令继续在后台执行时响应新的提示。 要在后台运行命令,你可以:
  • 提示 Claude Code 在后台运行命令
  • 按 Ctrl+B 将常规 Bash 工具调用移到后台。Tmux 用户必须按两次 Ctrl+B,因为 tmux 有前缀键。
主要功能:
  • 输出被写入文件,Claude 可以使用 Read 工具检索它
  • 后台任务有唯一的 ID 用于跟踪和输出检索
  • 当 Claude Code 退出时,后台任务会自动清理。在 macOS 和 Linux 上,当你从 /tasks 停止后台任务或 Claude Code 在退出时停止它时,从任务的 shell 分离的进程(例如在 setsid 或 timeout 下启动的进程)也会停止
  • 如果你将会话放在后台而不是退出,你的后台任务将继续在后台会话中运行。请参阅将运行中的会话放在后台
  • 如果输出超过 5GB,后台任务会自动终止,stderr 中会有说明原因的注释
  • 在 macOS 和 Linux 上,当操作系统报告严重内存压力时,Claude Code 会停止运行中的后台任务,前提是会话已空闲至少 30 分钟且没有 turn 或 subagent 运行。需要 Claude Code v2.1.193 或更高版本
  • 由子代理拥有的后台命令没有时间限制,除非由在前台运行的子代理拥有的命令在该子代理给出最终响应时结束;请参阅工具参考中的后台命令。在 v2.1.218 之前,内存压力回收和之前对子代理命令的 60 分钟限制都不包括用 Ctrl+B 移到后台的命令
要禁用所有后台任务功能,请将 CLAUDE_CODE_DISABLE_BACKGROUND_TASKS 环境变量设置为 1。有关详细信息,请参阅环境变量。 常见的后台命令:
  • 构建工具(webpack、vite、make)
  • 包管理器(npm、yarn、pnpm)
  • 测试运行器(jest、pytest)
  • 开发服务器
  • 长时间运行的进程(docker、terraform)

使用 ! 前缀的 Shell 模式

通过在输入前加 ! 前缀直接运行 shell 命令,无需通过 Claude:
Shell 模式:
  • 将命令及其输出添加到对话上下文
  • 显示实时进度和输出
  • 支持相同的 Ctrl+B 后台运行,用于长时间运行的命令
  • 不需要 Claude 解释或批准命令
  • 支持基于历史的自动完成:输入部分命令并按 Tab 从当前项目中的前面 ! 命令完成
  • 从 v2.1.193 开始在所有平台上支持实时文件路径自动完成:输入包含正斜杠的令牌,例如 ./src/ 或 ~/,查看匹配文件和目录的下拉列表,然后按 Tab 接受。在 Windows 上也使用正斜杠;下拉列表由 / 触发,而不是 \
  • 在空提示上按 Escape、Backspace 或 Ctrl+U 退出
  • 将以 ! 开头的文本粘贴到空提示中会自动进入 shell 模式,与输入的 ! 行为匹配
除非你的会话是严格沙箱模式下列出的会话之一,即使你已启用沙箱,你在 shell 模式中输入的命令也会在沙箱外运行,因为沙箱适用于 Claude 运行的命令。 一旦命令输出出现在记录中,Claude 会自动响应,因此你可以运行 ! npm test 并获得失败的解释,无需第二个提示。响应成本与发送普通提示相同。要恢复之前的行为,其中输出被添加到上下文而不响应,请在 settings.json 中将 respondToBashCommands 设置为 false。在 v2.1.186 之前,shell 模式始终将输出添加到上下文而不响应。

在 Claude 工作时排队消息

在 Claude 工作时输入消息并按 Enter。Claude Code 会将消息排队而不是中断当前轮次,并在输入框上方列出排队的条目,直到发送它们。您可以以相同的方式排队 ! shell 命令和大多数命令,除了 /status 等 Claude Code 在您发送时立即运行的命令。 已发送和排队的消息在 Claude 开始响应之前以灰色显示,因此您可以看出 Claude 还没有开始处理哪些消息。

Claude Code 何时发送您排队的内容

排队条目何时到达 Claude 取决于您排队的内容。
  • 消息:如果您在 Claude 运行工具调用时排队消息,Claude Code 会在这些工具调用完成后立即将其传递给 Claude,在同一轮次内。当轮次以仍有排队消息结束时,它们会在没有另一次按键的情况下按您输入的顺序发出
  • 命令和 shell 命令:Claude Code 将其保留到轮次结束,然后逐个运行它们,保持您排队的顺序
要在不等待轮次完成的情况下发送您排队的内容,请按 Ctrl+Enter。Claude Code 会中断轮次,您排队的消息会立即发出,如果您输入了草稿,您的草稿会排在它们后面。在 shell 模式中,该快捷键会排队您的命令而不中断轮次。需要 Claude Code v2.1.275 或更高版本。 在不报告扩展键的终端中,Ctrl+Enter 作为普通 Enter 到达并排队草稿;Ctrl+X Ctrl+S 在任何终端中都有效。两个快捷键都是 chat:sendNow 操作的绑定。 按 Esc 中断轮次而不提交您的草稿。Claude Code 保留您排队的内容并立即发送。 Claude Code 在您发送某些命令时立即运行它们,而不是排队它们,其中包括 /model、/effort 和 /fast。这三个命令各改变一个设置:模型、努力级别或快速模式。Claude Code 是将新设置应用于 Claude 已在处理的轮次,还是仅从您的下一轮次应用,因命令而异:
  • /model:一旦您确认缓存警告(如果 Claude Code 显示),Claude Code 会将您的更改应用于该轮次中它发出的下一个请求
  • /effort:一旦您确认缓存警告(如果 Claude Code 显示),Claude Code 会将您的更改应用于该轮次中它发出的下一个请求
  • /fast:Claude Code 保持轮次开始时活跃的快速模式设置,因此您的速度更改从您的下一轮次应用。如果您当前的模型不支持快速模式,打开它也会切换您的模型,Claude Code 会在该轮次中从其下一个请求使用新模型

取回您排队的内容

从输入框的第一行按 Up 以取回排队的消息和命令。Claude Code 将其从队列中移除并将其放在输入框中,每行一个,位于您输入的任何文本之前。编辑文本并按 Enter 以将其再次排队为一个条目,或清除输入框以丢弃它。 Claude Code 仅在输入框为空且您没有其他排队内容时才取回排队的 shell 命令,并在执行此操作时将输入框切换到 shell 模式。否则,它会将其保留在队列中,用其 ! 前缀列出,并在轮次结束后运行它们。

提示建议

当你首次打开一个会话时,Claude Code 会在提示输入框中显示一个灰显的示例命令来帮助你开始。它从你的项目的 git 历史记录中选择这个示例,所以该示例反映了你最近一直在处理的文件。 在 Claude 响应后,Claude Code 可以根据你的对话历史建议你的下一个提示,例如多部分请求的后续步骤或你工作流程的自然延续。
  • 按 Tab 或 Right arrow 将建议放入提示输入框,然后按 Enter 提交
  • 开始输入以关闭它
Claude Code 使用后台请求生成这些下一个提示建议,该请求使用你的会话正在使用的同一模型。该请求计入你的计划使用限制或你的 API 成本。因为它重用对话的提示缓存,所以主要是缓存读取加上少量输出令牌,因此额外成本很小。

当 Claude Code 跳过建议时

在交互模式下,Claude Code 默认关闭提示建议,并在 /config 中隐藏 Prompt suggestions 切换,在不获取功能标志的会话中(例如在第三方提供商上或通过 Claude 应用网关),以及在安装或升级后的首个会话中(其标志尚未到达)。 Claude Code 还在多种情况下跳过单个建议,包括:
  • 提示缓存为冷状态,以避免不必要的成本
  • 在对话的第一轮之后,在某些会话中
  • 前一个响应以错误结束
  • 当你处于 Plan Mode 时
  • 你的账户接近或已达到使用限制。要在达到限制之前保持建议开启,请将 CLAUDE_CODE_ENABLE_PROMPT_SUGGESTION 设置为 true。在 v2.1.238 之前,Claude Code 即使将变量设置为 true 也会在接近限制时跳过建议
  • 在代理团队中,默认情况下在队友的会话中。主导的会话显示建议
在打印模式下,Claude Code 默认不生成建议。使用 --prompt-suggestions 与 -p "<prompt>" --output-format stream-json --verbose 一起传递,以使 Claude Code 在生成建议的每一轮之后发出 prompt_suggestion 消息。生成器在这里也会跳过非常短的对话和冷提示缓存,因此单个短的 -p 查询可能不会发出任何建议。

关闭提示建议

要完全禁用提示建议,请使用以下任何一种方法: 要在整个组织范围内关闭提示建议,请在托管设置中将 promptSuggestionEnabled 设置为 false。还要在托管的 env 键下将 CLAUDE_CODE_ENABLE_PROMPT_SUGGESTION 设置为 false,以便用户无法使用自己的环境变量重新启用它们。

表情符号速记代码

在提示输入中输入 : 后跟表情符号速记代码来插入表情符号。需要 Claude Code v2.1.217 或更高版本。
  • 输入完整的速记代码,例如 :heart:,Claude Code 会在您输入结束的 : 时立即将其替换为 ❤️
  • 输入 : 加上名称的至少两个字符,例如 :hea,打开建议弹出窗口,然后按 Tab 或 Enter 插入突出显示的表情符号
速记代码必须在输入的开头或空格后开始,因此单词或 URL 内的 : 不会打开建议。 要关闭此功能,请在 settings.json 中将 emojiCompletionEnabled 设置为 false。这会禁用建议弹出窗口和内联替换。

在输入时检查拼写

Claude Code 可以在您输入时在提示输入框中为拼写错误的单词加下划线。它仅检查输入框中的文本,从不检查 Claude 的回复或您的文件。它也不会在输入框处于shell 模式、Ctrl+R 历史搜索或语音听写时检查任何内容。 拼写检查默认关闭,Claude Code 在屏幕阅读器模式下不检查任何内容。需要 Claude Code v2.1.235 或更高版本。

前置条件

  • 安装 aspell、hunspell 或 ispell,并确保它在您的 PATH 中。Claude Code 在每个平台上运行它找到的前三个中的第一个,包括包管理器在 Windows 上安装的 .cmd shim。
  • 要检查程序是否在您的 PATH 中,请在您的终端中运行 aspell --version、hunspell --version 或 ispell -v。“command not found” 错误意味着它还不在您的 PATH 中。

打开或关闭拼写检查

Claude Code 从三个地方读取 spellcheck 设置,并在项目的 .claude/settings.json 和 .claude/settings.local.json 中忽略它。从您使用的任何一个地方打开它:
将 spellcheck 添加到 ~/.claude/settings.json。它适用于您打开的每个项目,就像您的其他用户设置一样:
要检查拼写检查是否打开,请输入一个拼写错误的单词和一个空格。Claude Code 会为该单词加下划线。如果没有,请参阅当 Claude Code 不加下划线时。要再次关闭拼写检查,请在同一位置将 enabled 设置为 false,或删除 spellcheck。 要选择 Claude Code 运行的三个程序中的哪一个、它使用的字典或下划线颜色,请在同一位置在 enabled 旁边添加以下任何字段:
  • checker:aspell、hunspell 或 ispell。Claude Code 不会从您命名的检查器回退,并将任何其他值视为 auto。
  • language:您的检查器形式中的字典名称,例如 en_GB。Claude Code 忽略任何不是纯字典名称的值,例如路径或包含空格的名称,检查器使用其默认字典。
  • color:颜色名称,例如 yellow,或 #rrggbb、#rgb、rgb(r,g,b)、ansi256(n) 或 ansi:<name> 值。Claude Code 默认使用您的主题的错误颜色,对于任何它不识别的值也是如此。
例如,此 spellcheck 设置运行 hunspell 及其 en_GB 字典,并以黄色为单词加下划线。它在 ~/.claude/settings.json、您传递给 --settings 的文件和托管设置中的工作方式相同:
如果三个地方中有多个具有 spellcheck 设置,Claude Code 仅使用其中一个:首先是托管设置,然后是 --settings,然后是用户设置。它不会组合来自两个地方的字段。例如,当 --settings 设置 spellcheck 时,您的用户设置中的 language 无效。

Claude Code 加下划线的内容

在您暂停输入后不久,Claude Code 会为字典不知道的单词加下划线。它会将您仍在输入的单词单独留下,直到您越过它,并且它永远不会更改您的文本。它也会跳过看起来像代码的文本:
  • 命令,例如 /help、@ 提及、URL、文件路径和标志,例如 --verbose
  • 包含数字、下划线或第一个字母后的大写字母的单词,以及反引号中的文本
Claude Code 也会跳过中文、日文、韩文、泰文、老挝文、高棉文和缅甸文文本。 Claude Code 没有自己的单词列表:当您的检查器说一个单词拼写错误时,它就是拼写错误的。要停止 Claude Code 为单词加下划线,请按照检查器自己的文档将该单词添加到您的检查器的个人字典中。Claude Code 在您重新启动它后会获取新单词。

当 Claude Code 不加下划线时

当 Claude Code 无法保持检查器运行时,它不加下划线:
  • 未安装检查器,或您在 checker 中命名的检查器丢失
  • 检查器连续失败两次,在启动时或会话中稍后。Claude Code 在第一次失败后重新启动它,在第二次失败后停止检查,直到您重新启动 Claude Code
  • 检查器需要超过 15 秒来回答,三次。每次,Claude Code 都会将它等待的单词保持未标记;在第三次之后,它停止检查,直到您重新启动 Claude Code
要找出发生了哪种情况,请使用 claude --debug 启动拼写检查并输入一个单词。然后在 ~/.claude/debug/<session-id>.txt 的调试日志中查找 [spellcheck] 行。一行命名 Claude Code 启动的程序,或列出它查找但未找到的程序。后面的行说明它为什么停止。那里的缺少字典错误意味着检查器没有您的 language 值的字典,或当 language 未设置时没有默认字典。安装一个,或将 language 设置为您拥有的字典。

提示词中的隐形字符

粘贴的文本可能包含 Unicode 字符,这些字符在终端中显示为空白,例如标签字符、双向控制字符和零宽空格,因此提示词可能包含您看不到的文本。为了防止复制的文本携带终端无法显示的指令,Claude Code 在您按 Enter 时会移除这些字符,然后再发送任何内容。它会清理提示词和提示词包含的任何折叠的粘贴文本引用的内容。Claude Code 会保留波斯语和印度文字使用的连接符以及表情符号序列中的选择器。 如果 Claude Code 移除了任何内容,该 Enter 将不发送任何内容。清理后的提示词会返回到输入框中,并显示类似 Removed 3 invisible characters · review and press Enter to send 的通知,再次按 Enter 会发送显示的文本。 当您在命令行上传递提示词时,例如 claude "fix the login bug",或将其管道传输到交互式会话中,Claude Code 不会等待第二次 Enter。它会移除这些字符,显示通知,并发送清理后的提示词。如果清理后的提示词以 / 开头,Claude Code 会将其放在输入框中供您审查和发送。

使用 /diff 查看更改

运行 /diff 可以在不离开 Claude Code 的情况下查看工作树中的更改。您可以看到 Claude 迄今为止所做的编辑以及您尚未提交的任何其他内容。 在 /diff 从 git 读取的更改中,子模块显示为单个条目,仅当它指向的提交发生更改时才会出现;对子模块内文件的编辑不会显示在那里。 在全屏渲染中,/diff 在对话旁边打开差异面板,该面板保持打开状态并在您继续工作时更新。在经典渲染器中,/diff 在提示符的位置打开差异查看器,您阅读完后可以关闭它。

Diff panel

差异面板列出了更改的文件及其添加和删除的行数,并在列表下方显示每个文件的差异。Claude Code 在 Claude 编辑文件或运行 shell 命令时刷新它。要关闭它,请再次运行 /diff 或单击其标题中的 ✕。 要使用该面板,您需要:
  • 全屏渲染
  • 一个 git 仓库
  • 至少 110 列宽的终端
  • Claude Code v2.1.260 或更高版本
当面板无法打开时,/diff 会打开差异查看器或告诉您原因。 一旦 Claude 开始编辑文件,如果您的终端至少 144 列宽,该面板也会自动打开。在您自己使用 /diff 打开它后,后续会话会在 Claude 在任何足够宽的终端中编辑文件时立即打开它。关闭面板后,它在此会话和后续会话中保持关闭状态,直到您再次运行 /diff。 当面板打开时,您可以:
  • 跳转到文件:单击列表中的其行。使用鼠标滚轮滚动面板。当文件列表本身太长无法容纳时,使用 Alt+Up 和 Alt+Down 或 Ctrl+Up 和 Ctrl+Down 滚动它。
  • 询问 Claude 关于特定行的问题:在面板中用鼠标选择它们。Claude Code 将选择附加到您的下一个提示,并在您发送之前在输入旁边显示行数。
    • 要在不选择的情况下发送提示,请将光标移动到行数指示器之后,然后按 Backspace 删除它。需要 Claude Code v2.1.271 或更高版本。
  • 显示面板遗漏的文件:列表跳过测试文件和生成的文件,并将此会话之前的更改折叠为底部的一行。单击任一计数行以展开它。
  • 更改面板比较的内容:按 Ctrl+X B 在此会话的更改、您的未提交更改作为一个列表,以及自您的分支从默认分支分离以来的所有内容之间循环。Claude Code 为每个项目记住该选择。
要将快捷键绑定到这些操作,请参阅 Diff panel actions。

Diff viewer

差异查看器取代提示符,直到您关闭它。其当前视图显示您来自 git 的未提交更改,或者当没有更改时,显示您的分支在默认分支之上添加的内容。查看器还为 Claude 编辑文件的每个提示后的轮次提供一个轮次视图,仅显示这些编辑。Claude Code 从 Claude 的文件编辑而不是从 git 构建轮次视图,因此 Claude 通过 shell 命令所做的更改仅显示在当前视图下。 在查看器中使用这些快捷键:
  • 左和右:在当前视图和轮次视图之间移动。
  • 上和下:选择一个文件。
  • Enter:打开所选文件的差异。使用上和下或 PageUp 和 PageDown 滚动它。
  • Esc:从文件的差异返回到列表,或从列表关闭查看器。
要重新绑定这些快捷键,请参阅 Diff actions。

使用 /btw 提出附加问题

使用 /btw 提出关于当前工作的问题,而不将其添加到对话历史记录中。
Claude 从对话中已有的内容回答附加问题:你的消息、它的回复以及它收集的工具结果。你可以询问 Claude 已经读过的代码、它之前做出的决定,或会话中的任何其他内容。后来的附加问题也会看到你之前的附加问题:Claude Code 在每次提问时重放最新的 20 个交换,直到你清除它们。问题和答案永远不会进入对话历史记录。在终端中,它们以可关闭的覆盖层形式出现。终端将线程保存在内存中:按 x 清除之前的交换,退出 Claude Code 时它就消失了。 在 VS Code 扩展的聊天面板中,/btw 打开一个面板而不是本节描述的覆盖层,你可以直接在面板中提出后续问题。该面板的线程在窗口重新加载后仍然存在,遵循该页面描述的保留计划。你需要 v2.1.227 或更高版本的扩展。早期的扩展版本不提供 /btw。
  • Claude 工作时可用:即使 Claude 正在处理响应,你也可以运行 /btw。附加问题独立运行,不会中断主要回合。它可以看到到目前为止对话中的所有内容,除了 Claude 仍在编写的回复。
  • 无工具访问:附加问题仅从上下文中已有的内容回答。Claude 在回答附加问题时无法读取文件、运行命令或搜索。如果 Claude 无论如何都将工具调用写成文本,答案会以一条注释结尾,说明没有执行任何操作。
  • 单一响应:覆盖层中没有后续回合。要继续线程,请提出另一个 /btw 问题。要在本地会话中继续使用完整的工具访问,按 f 将此问题和答案分叉到 后台子代理。
  • 低成本:当对话的 prompt cache 预热时,附加问题的成本仅略高于答案本身。
你最新的五个之前的附加问题以暗淡的列表形式出现在当前答案上方,并显示任何较旧问题的计数。它们不会进入对话历史记录。 要在关闭覆盖层后返回到它,运行不带问题的 /btw。覆盖层在你最近的交换处重新打开。在 v2.1.212 之前,不带问题的 /btw 会打印使用消息。 答案出现后,覆盖层接受这些按键。 在附加的 后台会话中,Left 分离并将你返回到代理视图,即使答案仍在到达。附加问题在你离开时继续运行。下次你附加到会话时,覆盖层会重新打开,显示附加问题或其答案。在 v2.1.257 之前,Left 在那里不分离。 /btw 可以看到你的完整对话,但没有工具。子代理有工具,从它接收的提示开始,或者对于 分叉,从此对话的副本开始。使用 /btw 询问 Claude 从此会话中已知的内容;使用子代理去发现新的东西。

任务列表

任务列表是 Claude 的待办事项清单:Claude 创建的用于规划多步骤工作的项目,带有指示器显示待处理、进行中或已完成的状态。它与后台任务视图分开。要查看运行中的 shell 和子代理,请改用 /tasks。 该列表仅在具有任务跟踪工具的会话中填充,Claude Code 在 Claude 3.x 模型、Opus 4 至 4.7、Sonnet 4 至 4.6 以及 Haiku 4.5 上默认提供。在任何其他模型上,包括 Claude Code 无法识别的模型 ID,除非您使用 CLAUDE_CODE_ENABLE_TODO_TOOLS=1 或 任务工具可用性 下的其他方式选择加入,否则列表保持为空。当会话具有这些工具时,任务列表的工作方式如下:
  • 按 Ctrl+T 切换任务列表视图。显示一次最多显示五个任务。当 Claude 尚未创建任何清单项目时,切换没有可见效果,因为没有要显示的内容
  • 如果您保持列表展开,Claude Code 会在下次启动仍有任务的会话时恢复展开视图,例如使用 --resume 或 --continue。当任务列表为空时,Claude Code 会将其启动为折叠状态
  • 要查看所有任务或清除它们,直接询问 Claude:“show me all tasks”(显示所有任务)或 “clear all tasks”(清除所有任务)
  • 任务在上下文压缩中保持,帮助 Claude 在较大的项目中保持组织
  • 要在会话间共享任务列表,设置 CLAUDE_CODE_TASK_LIST_ID 以使用 ~/.claude/tasks/ 中的命名目录:CLAUDE_CODE_TASK_LIST_ID=my-project claude

会话回顾

当你离开终端后返回时,Claude Code 会显示一行简短的回顾,说明到目前为止会话中发生了什么。一旦距离上次完成的轮次至少过了三分钟,且终端处于未聚焦状态,回顾就会在后台生成,这样当你切换回来时就已准备好。只有当会话至少有三个轮次时,回顾才会出现,且永远不会连续出现两次。 运行 /recap 可按需生成摘要。Claude Code 将自动回顾和 /recap 输出都限制在 400 个字符以内。要关闭自动回顾,请打开 /config 并关闭会话回顾。 会话回顾在所有计划和提供商上默认启用。在非交互模式下,回顾始终被跳过。

等待使用限制重置

当 claude.ai 使用限制 在任务中途停止 Claude 时,Claude Code 会在打开的会话中等待,并在限制重置后自动继续该任务。在使用 claude.ai 订阅登录的交互式会话中,自动继续功能默认处于启用状态。需要 Claude Code v2.1.234 或更高版本。 Claude Code 等待时,会话底部的一行显示何时继续:
保持会话打开。接下来发生的情况取决于等待如何结束:
  • 在重置时:该行显示 continuing shortly,然后显示 Usage limit reset · continuing automatically,Claude Code 向 Claude 发送一个固定提示以从停止的地方继续任务。它不会重新发送您的最后一条消息。
  • 计算机睡眠后:如果睡眠超过约 30 分钟,并且限制在睡眠期间重置,该行显示 Your usage limit has reset · press enter to continue。按 Enter 继续。睡眠时间较短后,Claude Code 会自动继续。
  • 提前:当您使用 /usage-credits 完成添加 使用额度、在 /upgrade 后重新登录或在等待期间使用 /model 切换模型时,Claude Code 会检查使用情况是否再次可用,如果可用则立即继续。它不会在您在浏览器中自行进行的升级或购买后进行检查。在 opusplan 和其他在不同模型上运行计划模式的模型设置下,Claude Code 会等待重置。
继续的任务像任何其他轮次一样运行。Claude Code 仍然照常要求 权限,因此任务可能在您离开时在提示处停止。如果再次达到限制,Claude Code 最多会自动重新启动等待两次,然后停止并显示 Automatic continue stopped after repeated usage-limit hits · /rate-limit-options to try again。

取消等待

在空提示处按 Esc,或在显示该行时按 Ctrl+C,或运行 /rate-limit-options 并选择 Don’t continue automatically。Claude Code 会确认一行以 Automatic continue cancelled 开头的消息。 取消后,在您发送提示或再次从 /rate-limit-options 中选择以 Wait here, then continue automatically 开头的行之前,不会继续任何操作。Claude Code 不会为该重置窗口自动启动等待;下一个重置窗口会重新开始。 在这些情况下,等待也会在不继续任务的情况下结束:
  • 您发送提示:Claude Code 运行您的提示而不是等待。
  • 您退出 Claude Code:当您恢复会话时,等待不会重新启动。
  • 对话转手:您使用 /login 切换账户、清除或倒带对话、/resume 另一个会话、使用 /teleport 拉取一个会话、使用 /tui 重新启动,或将会话交给 Claude Desktop、后台会话或云端。
  • 设置关闭,或重置超过 24 小时:这仅结束 Claude Code 自动启动的等待。您从 /rate-limit-options 中选择的等待会继续倒计时。
  • 继续被阻止:一个阻止继续提示的 UserPromptSubmit hook,或在到达模型之前的失败,会结束等待。Claude Code 会告诉您继续没有运行。发送提示以继续。

自己启动等待

Claude Code 在这些情况下不会自动启动等待:
  • Remote Control 和 agent team 队友会话:该终端的人员仍然可以启动一个。
  • 重置超过 24 小时:每周限制可能在几天后重置。
  • 您运行该系列之外的模型时的 Opus 或 Sonnet 限制:您的下一轮可能不会达到该限制。opusplan 和其他在受限系列上运行计划模式的模型设置不会获得此例外。
在这些情况下,以及每当自动继续关闭时,当您在自己的终端达到限制时,Claude Code 会在每个重置窗口打开一次使用限制选项菜单。选择以 Wait here, then continue automatically 开头的行以启动等待。在 Remote Control 或 agent team 队友会话中,自己运行 /rate-limit-options 以打开菜单。 Claude Code 在这些情况下根本不提供等待:
  • 后台会话和 -p 运行:菜单行不可用。
  • API 密钥、云提供商和基于使用情况的计费:那里的使用情况按请求计量,因此没有重置可等待。
  • 没有保存的 claude.ai 登录的 LLM gateway:Claude Code 仅在保存的 claude.ai 登录是活跃凭证时才提供等待。

关闭自动继续

在 /config 中,关闭 Continue automatically at usage limit,或在您的用户设置中将 autoContinueAtUsageLimit 设置为 false。/config autoContinueAtUsageLimit=false 也有效,包括使用 -p,但 key=value 形式无法将其重新打开,因为该设置授予无人值守执行。Claude Code 为此密钥读取的设置文件在 settings reference 中。

PR 审查状态

在处理具有开放拉取请求的分支时,Claude Code 在页脚显示可点击的 PR 链接,例如”PR #446”。该链接有一个彩色下划线,指示审查状态:
  • 绿色:已批准
  • 黄色:待审查
  • 红色:请求更改
  • 灰色:草稿
拉取请求合并或关闭后,徽章消失。 Cmd+click(macOS)或 Ctrl+click(Windows/Linux)点击链接以在浏览器中打开拉取请求。 状态在 git push 或更改拉取请求的 gh pr 命令(例如 gh pr create 或 gh pr merge)在会话中成功后立即刷新。 Claude Code 将徽章呈现为超链接,即使它无法在您的终端中检测到超链接支持,这通常发生在 SSH 或 tmux 中。设置 FORCE_HYPERLINK=0 以将徽章呈现为纯文本。 当您设置 CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC 时,Claude Code 不会检查拉取请求或合并请求状态。
GitHub 仓库的 PR 状态需要 GitHub 令牌。Claude Code 根据远程主机查找令牌:
  • github.com:GH_TOKEN 或 GITHUB_TOKEN,或由 gh auth login 保存的令牌。没有令牌时,当未安装 gh CLI 时页脚显示 install gh for PR status,或当已安装时显示 gh auth login for PR status
  • 设置为 GH_HOST 的 GitHub Enterprise 主机:GH_ENTERPRISE_TOKEN 或 GITHUB_ENTERPRISE_TOKEN,或由 gh auth login --hostname <host> 保存的令牌。没有令牌时,页脚显示相同的提示
  • 任何其他 GitHub 主机:由 gh auth login --hostname <host> 保存的令牌。没有令牌时,Claude Code 不显示徽章和提示

GitLab 合并请求

当您在具有开放 GitLab 合并请求的分支上工作时,Claude Code 在页脚槽中显示可点击的 MR !N 徽章,该槽位通常保存 GitHub PR 链接。!N 是 GitLab 自己的合并请求编号 N 的参考语法。彩色下划线显示合并请求的状态:
  • 绿色:GitLab 报告合并请求可合并
  • 黄色:任何其他开放状态
  • 灰色:草稿
合并请求合并或关闭后,徽章消失。 它在 git push 或更改合并请求的 glab mr 命令(例如 glab mr create 或 glab mr merge)在会话中成功后立即刷新。 要获取徽章,您需要:
  • Claude Code v2.1.234 或更高版本
  • 指向您的 GitLab 主机的仓库远程,可以是 gitlab.com 或自管理实例
  • 您的 PATH 中的 glab CLI,使用 glab auth login 进行身份验证
Claude Code 在检查状态时忽略 glab 的令牌环境变量(例如 GITLAB_TOKEN),因此您无法仅从导出的令牌获得徽章。Claude Code 还每个会话查找一次 glab 及其登录信息,因此在安装 glab 或运行 glab auth login 后重启 Claude Code。 当 Claude 提到一个问题为 owner/repo#123 时,只要你的终端支持超链接,你就可以点击该参考来打开它。如果 Claude Code 没有检测到你的终端支持超链接,请设置 FORCE_HYPERLINK 为 1 来打开链接,或设置为 0 来保持参考为纯文本。 你只能获得两部分 owner/repo#123 形式的链接。这些保持为纯文本:
  • 一个单独的 #123
  • 一个嵌套的 GitLab 路径,例如 group/subgroup/project#123
  • 代码跨度或代码块内的任何参考
Claude Code 根据它从你的 git remote 识别的仓库主机来构建链接,而不是根据参考命名的仓库:

另请参阅