跳转到主要内容
Claude Code 在任何终端中都可以无需配置而工作。此页面适用于当某些特定功能的行为不符合您的预期时。在下面找到您的症状。如果一切都已经感觉正确,您不需要此页面。 此页面是关于让您的终端向 Claude Code 发送正确的信号。要更改 Claude Code 本身响应的快捷键,请改为参阅快捷键

输入多行提示符

按 Enter 提交您的消息。要添加换行符而不提交,请按 Ctrl+J,或输入 \ 然后按 Enter。两者都在每个终端中工作,无需设置。 在大多数终端中,您也可以按 Shift+Enter,但支持因终端模拟器而异: 对于 VS Code、Cursor、Devin Desktop、Alacritty 和 Zed,/terminal-setup 将 Shift+Enter 和其他快捷键写入终端的配置文件。现有的绑定保持不变;如果您看到诸如 VSCode terminal Shift+Enter key binding already configured 之类的消息,则未进行任何更改。在主机终端中直接运行 /terminal-setup 而不是在 tmux 或 screen 内运行,因为它需要写入主机终端的配置。 在 VS Code、Cursor 和 Devin Desktop 中,/terminal-setup 还会更新两个编辑器设置:它将 terminal.integrated.gpuAcceleration 设置为 "off" 以防止集成终端中的文本乱码,并设置 terminal.integrated.mouseWheelScrollSensitivity 以在全屏模式中实现更平滑的滚动。要撤销 GPU 加速更改,请将其设置回 "auto" 并重新加载编辑器窗口。 如果您在 tmux 内运行,即使外部终端支持,Shift+Enter 也需要下面的 tmux 配置 要将换行绑定到不同的快捷键,或交换行为使 Enter 插入换行而 Shift+Enter 提交,请在您的快捷键文件中映射 chat:newlinechat:submit 操作。

在 macOS 上启用 Option 快捷键

某些 Claude Code 快捷键使用 Option 键,例如 Option+Enter 换行或 Option+P 切换模型。在 macOS 上,大多数终端默认不将 Option 作为修饰符发送,因此这些快捷键在您启用它之前无效。此终端设置通常标记为”使用 Option 作为 Meta 键”;Meta 是现在标记为 Option 或 Alt 的快捷键的历史 Unix 名称。
打开设置 → 配置文件 → 键盘并勾选”使用 Option 作为 Meta 键”。如果您接受了 Claude Code 的首次运行提示,该提示提供了”Option+Enter 换行和视觉铃声”,这已经完成。该提示为您运行 /terminal-setup,它在您的 Apple Terminal 配置文件中启用 Option 作为 Meta 并将音频铃声切换为视觉屏幕闪烁。
对于 Ghostty、Kitty 和其他终端,请在终端的配置文件中查找 Option-as-Alt 或 Option-as-Meta 设置。

获取终端铃声或通知

当 Claude 完成任务或暂停以获得权限提示时,它会触发通知事件。将其显示为终端铃声或桌面通知可让您在长任务运行时切换到其他工作。 默认情况下,Claude Code 仅在 Ghostty、Kitty 和 iTerm2 中发送桌面通知。在其他终端中,将 preferredNotifChannel 设置为 "terminal_bell" 以改为响铃终端铃声,或配置通知钩子以获得自定义声音或命令。 桌面通知通过 SSH 到达您的本地机器,因此远程会话仍然可以提醒您。Ghostty 和 Kitty 无需进一步设置即可将其转发到您的 OS 通知中心。iTerm2 要求您启用转发:
1

打开 iTerm2 通知设置

转到设置 → 配置文件 → 终端。
2

启用警报

勾选”通知中心警报”,然后单击”过滤警报”并启用”发送转义序列生成的警报”。
如果通知仍未出现,请确认您的终端应用程序在您的 OS 设置中具有通知权限,如果您在 tmux 内运行,请启用直通

使用通知钩子播放声音

在任何终端中,您可以配置通知钩子以在 Claude 需要您的注意时播放声音或运行自定义命令。钩子与内置通知一起运行,而不是替代它,因此不接收桌面通知的终端(如 Warp 或 VS Code 集成终端)可以使用钩子或将 preferredNotifChannel 设置为 "terminal_bell" 代替。 下面的示例在 macOS 上播放系统声音。链接的指南包含 macOS、Linux 和 Windows 的桌面通知命令。
~/.claude/settings.json

配置 tmux

当 Claude Code 在 tmux 内运行时,默认情况下两件事会中断:Shift+Enter 提交而不是插入换行,桌面通知和进度条永远无法到达外部终端。将这些行添加到 ~/.tmux.conf,然后运行 tmux source-file ~/.tmux.conf 将它们应用到运行的服务器:
~/.tmux.conf
allow-passthrough 行让通知和进度更新到达外部终端,而不是被 tmux 吞没。extended-keys 行让 tmux 区分 Shift+Enter 和纯 Enter,以便换行快捷键工作。

匹配颜色主题

使用 /theme 命令或 /config 中的主题选择器来选择与您的终端匹配的 Claude Code 主题。选择自动选项会检测您的终端的浅色或深色背景,因此主题会在您的终端执行时跟随 OS 外观更改。Claude Code 不控制终端自己的颜色方案,该方案由终端应用程序设置。 要自定义界面底部显示的内容,请配置自定义状态行,显示当前模型、工作目录、git 分支或其他上下文。

创建自定义主题

自定义主题需要 Claude Code v2.1.118 或更高版本。
除了内置预设外,/theme 还列出您定义的任何自定义主题以及已安装的 plugins 贡献的任何主题。选择列表末尾的**新建自定义主题…**以交互方式创建一个:您命名主题,然后选择要覆盖的各个颜色令牌。当自定义主题突出显示时,按 Ctrl+E 来编辑它。 每个自定义主题都是 ~/.claude/themes/ 中的 JSON 文件。不带 .json 扩展名的文件名是主题的 slug,选择主题会将 custom:<slug> 存储为您的主题偏好设置。该文件有三个可选字段: 颜色值接受 #rrggbb#rgbrgb(r,g,b)ansi256(n)ansi:<name>,其中 <name> 是 16 个标准 ANSI 颜色名称之一,例如 redcyanBright。未知令牌和无效颜色值会被忽略,因此拼写错误不会破坏渲染。 以下示例定义了一个保留深色预设但重新着色提示符强调、错误文本和成功文本的主题:
~/.claude/themes/dracula.json
Claude Code 监视 ~/.claude/themes/ 并在文件更改时重新加载,因此在您的编辑器中所做的编辑会应用到正在运行的会话中,无需重新启动。 以下参考涵盖了您可以在 overrides 中设置的令牌。/theme 中的交互式编辑器显示相同的令牌,并带有实时预览,以及一些单一用途的强调,例如此处未涵盖的入门屏幕颜色。
以下示例结合了以下几个组中的令牌:品牌强调、Plan Mode 边框、diff 背景和全屏消息背景。
~/.claude/themes/midnight.json

文本和强调颜色

控制整个界面中使用的主要品牌强调和前景文本阴影。

状态颜色

在消息和指示器中发出成功、失败和警告状态信号。

输入框和模式指示器

设置输入框边框颜色和权限模式或指示器处于活动状态时显示的强调。

Diff 渲染

在文件编辑和审查中为添加和删除的代码着色。

全屏模式

仅在全屏渲染模式中应用,其中消息具有背景填充。

使用量计量器和发言人标签

调整 /usage 视图中显示的条形图以及区分您的消息和 Claude 消息的标签。

微光变体和子代理颜色

多个令牌具有配对的微光变体,提供微调器动画梯度中使用的较浅颜色。如果动画看起来不匹配,请与其基础令牌一起覆盖微光。
  • claudeclaudeShimmer
  • warningwarningShimmer
  • permissionpermissionShimmer
  • promptBorderpromptBorderShimmer
  • inactiveinactiveShimmer
  • fastModefastModeShimmer
每个子代理和并行任务以八种命名颜色之一显示,以便您可以在成绩单中区分它们。令牌名称遵循 <color>_FOR_SUBAGENTS_ONLY 的模式,其中 <color>redbluegreenyellowpurpleorangepinkcyan。覆盖这些以更改每个命名颜色的外观。例如,定义中具有 color: blue 的子代理使用 blue_FOR_SUBAGENTS_ONLY 值绘制。ultrathinkultraplan 关键字在提示输入中使用七色彩虹梯度渲染。令牌名称遵循 rainbow_<color>rainbow_<color>_shimmer 的模式,其中 <color>redorangeyellowgreenblueindigoviolet

切换到全屏渲染

如果显示闪烁或在 Claude 工作时滚动位置跳跃,请切换到全屏渲染模式。它绘制到终端为全屏应用程序保留的单独屏幕,而不是附加到您的正常滚动条,这保持内存使用平稳并为滚动和选择添加鼠标支持。在此模式下,您使用鼠标或 PageUp 在 Claude Code 内滚动,而不是使用您的终端的本机滚动条;请参阅全屏页面了解如何搜索和复制。 如果闪烁是唯一的问题,且您的终端支持同步输出但未被自动检测,例如 Emacs eat,请设置 CLAUDE_CODE_FORCE_SYNC_OUTPUT=1 以停止闪烁而不改变渲染器。 运行 /tui fullscreen 以切换并保存偏好设置。您的对话将完整重新启动,未来的会话将在全屏中启动。您也可以在启动 Claude Code 之前设置 CLAUDE_CODE_NO_FLICKER 环境变量:

粘贴大型内容

当您将超过 10,000 个字符粘贴到提示符中时,Claude Code 将输入折叠为 [Pasted text] 占位符,以便输入框保持可用。当您提交时,完整内容仍会发送给 Claude。 VS Code 集成终端可能会在非常大的粘贴中丢弃字符,然后才能到达 Claude Code,因此在那里更喜欢基于文件的工作流。对于非常大的输入,例如整个文件或长日志,请将内容写入文件并要求 Claude 读取它,而不是粘贴。这保持对话记录可读,并让 Claude 在后续轮次中按路径引用文件。

使用 Vim 快捷键编辑提示符

Claude Code 包括提示符输入的 Vim 风格编辑模式。通过 /config → 编辑器模式启用它,或通过在 ~/.claude/settings.json 中将 editorMode 设置为 "vim" 来启用。将编辑器模式设置回 normal 以关闭它。 Vim 模式支持 NORMAL 模式和 VISUAL 模式动作和运算符的子集,例如 hjkl 导航、v/V 选择以及 d/c/y 与文本对象。请参阅 Vim 编辑器模式参考了解完整的快捷键表。 Vim 动作不可通过快捷键文件重新映射。要映射两个按键的 INSERT 模式序列(例如 jj 到 Escape),请在用户设置中设置 vimInsertModeRemaps 在 INSERT 模式下按 Enter 仍会提交您的提示符,与标准 Vim 不同。在 NORMAL 模式下使用 oO,或 Ctrl+J,来插入换行。
  • 交互模式:完整的键盘快捷键参考和 Vim 快捷键表
  • 快捷键:重新映射任何 Claude Code 快捷键,包括 Enter 和 Shift+Enter
  • 全屏渲染:全屏模式下滚动、搜索和复制的详细信息
  • 钩子指南:Linux 和 Windows 的更多通知钩子示例
  • 故障排除:修复终端配置之外的问题