English ← MyDocs

文档索引

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

为 Claude Code 配置终端

修复 Shift+Enter 换行问题、在 Claude 完成时获取终端提示音、配置 tmux、匹配颜色主题,以及在 Claude Code CLI 中启用 Vim 模式。

Claude Code 可在任何终端中工作,无需配置。本页面适用于某些具体功能不符合您预期的情况。在下方查找您的症状。如果一切正常,您不需要此页面。

本页面是关于让您的终端向 Claude Code 发送正确的信号。要更改 Claude Code 本身响应的按键,请参阅按键绑定

输入多行提示

按 Enter 会提交您的消息。要添加换行而不提交,请按 Ctrl+J,或输入 \ 然后按 Enter。两者都适用于所有终端,无需设置。

在大多数终端中,您也可以按 Shift+Enter,但支持因终端模拟器而异:

终端Shift+Enter 换行
Ghostty、Kitty、iTerm2、WezTerm、Warp、Apple Terminal、Windows Terminal无需设置即可使用
VS Code、Cursor、Windsurf、Alacritty、Zed运行一次 /terminal-setup
gnome-terminal、JetBrains IDE(如 PyCharm 和 Android Studio)不可用;使用 Ctrl+J 或 \ 然后按 Enter

对于 VS Code、Cursor、Windsurf、Alacritty 和 Zed,/terminal-setup 会将 Shift+Enter 和其他按键绑定写入终端的配置文件。在 VS Code、Cursor 和 Windsurf 中,它还会在编辑器设置中设置 terminal.integrated.mouseWheelScrollSensitivity,以使全屏模式下的滚动更顺畅。现有的绑定和设置会保留;如果您看到类似 VSCode terminal Shift+Enter key binding already configured 的消息,则表示未进行任何更改。请直接在宿主终端中运行 /terminal-setup,而不是在 tmux 或 screen 内部运行,因为它需要写入宿主终端的配置。

如果您在 tmux 内部运行,即使外部终端支持,Shift+Enter 也需要下面的 tmux 配置

要将换行绑定到不同的键,或交换行为使 Enter 插入新行而 Shift+Enter 提交,请在您的按键绑定文件中映射 chat:newlinechat:submit 操作。

在 macOS 上启用 Option 键快捷键

一些 Claude Code 快捷键使用 Option 键,例如 Option+Enter 用于换行或 Option+P 用于切换模型。在 macOS 上,大多数终端默认不将 Option 作为修饰键发送,因此这些快捷键不起作用,直到您启用它。此功能的终端设置通常标记为"将 Option 用作 Meta 键";Meta 是历史上 Unix 对现在标记为 Option 或 Alt 的键的名称。

打开 Settings → Profiles → Keyboard 并勾选"Use Option as Meta Key"。

如果您接受了 Claude Code 首次运行提示中提供的"Option+Enter for newlines and visual bell",则此操作已完成。该提示为您运行 /terminal-setup,它在您的 Apple Terminal 配置文件中启用 Option 作为 Meta 并将音频提示音切换为视觉屏幕闪烁。

打开 Settings → Profiles → Keys → General 并将 Left Option key 和 Right Option key 设置为 "Esc+"。

在 iTerm2 中运行 /terminal-setup 会在 Settings → General → Selection 下启用"Applications in terminal may access clipboard",以便 /copy 命令可以写入您的系统剪贴板。即使从 tmux 内部运行,该命令也能检测到 iTerm2。重启 iTerm2 以使更改生效。

"terminal.integrated.macOptionIsMeta": true 添加到您的 VS Code 设置中。

对于 Ghostty、Kitty 和其他终端,请在终端的配置文件中查找 Option-as-Alt 或 Option-as-Meta 设置。

获取终端提示音或通知

当 Claude 完成任务或因权限提示而暂停时,它会触发通知事件。将其显示为终端提示音或桌面通知,让您可以在长时间任务运行时切换到其他工作。

默认情况下,Claude Code 仅在 Ghostty、Kitty 和 iTerm2 中发送桌面通知。在其他终端中,将 preferredNotifChannel 设置为 "terminal_bell" 以改为响铃终端提示音,或配置通知钩子以使用自定义声音或命令。

桌面通知通过 SSH 到达您的本地机器,因此远程会话仍然可以提醒您。Ghostty 和 Kitty 无需进一步设置即可将其转发到您的操作系统通知中心。iTerm2 需要您启用转发:

  1. 打开 iTerm2 通知设置

    前往 Settings → Profiles → Terminal。

  2. 启用提醒

    勾选"Notification Center Alerts",然后点击"Filter Alerts"并启用"Send escape sequence-generated alerts"。

如果通知仍未出现,请确认您的终端应用程序在操作系统设置中具有通知权限,如果您在 tmux 中运行,请启用透传

使用通知钩子播放声音

在任何终端中,您可以配置通知钩子来播放声音或在 Claude 需要您注意时运行自定义命令。钩子与内置通知一起运行,而不是替换它,因此不接收桌面通知的终端(如 Warp 或 VS Code 集成终端)可以使用钩子或将 preferredNotifChannel 设置为 "terminal_bell"

以下示例在 macOS 上播放系统声音。链接的指南提供了适用于 macOS、Linux 和 Windows 的桌面通知命令。

{
  "hooks": {
    "Notification": [
      {
        "hooks": [{ "type": "command", "command": "afplay /System/Library/Sounds/Glass.aiff" }]
      }
    ]
  }
}

配置 tmux

当 Claude Code 在 tmux 内部运行时,默认情况下有两件事会出问题:Shift+Enter 提交而不是插入新行,以及桌面通知和进度条永远不会到达外部终端。将以下行添加到 ~/.tmux.conf,然后运行 tmux source-file ~/.tmux.conf 将其应用到正在运行的服务器:

set -g allow-passthrough on
set -s extended-keys on
set -as terminal-features 'xterm*:extkeys'

allow-passthrough 行让通知和进度更新到达外部终端,而不是被 tmux 吞掉。extended-keys 行让 tmux 区分 Shift+Enter 和普通 Enter,以便换行快捷键正常工作。

匹配颜色主题

使用 /theme 命令或 /config 中的主题选择器,选择与您的终端匹配的 Claude Code 主题。选择自动选项会检测终端的浅色或深色背景,因此当终端跟随操作系统外观更改时主题也会随之更改。Claude Code 不控制终端本身的颜色方案,该方案由终端应用程序设置。

要自定义界面底部显示的内容,请配置自定义状态行以显示当前模型、工作目录、git 分支或其他上下文。

创建自定义主题

Note

自定义主题需要 Claude Code v2.1.118 或更高版本。

除了内置预设外,/theme 还会列出您定义的任何自定义主题以及已安装插件贡献的任何主题。在列表末尾选择 New custom theme... 以交互方式创建主题:您命名主题,然后选择要覆盖的各个颜色标记。在自定义主题高亮时按 Ctrl+E 可编辑它。

每个自定义主题是 ~/.claude/themes/ 中的一个 JSON 文件。不带 .json 扩展名的文件名是主题的 slug,选择主题会将 custom:<slug> 存储为您的主题首选项。该文件有三个可选字段:

字段类型描述
namestring/theme 中显示的标签。默认为文件名 slug
basestring主题开始的内置预设:darklightdark-daltonizedlight-daltonizeddark-ansilight-ansi。默认为 dark
overridesobject颜色标记名称到颜色值的映射。此处未列出的标记会回退到基础预设

颜色值接受 #rrggbb#rgbrgb(r,g,b)ansi256(n)ansi:<name>,其中 <name> 是 16 个标准 ANSI 颜色名称之一,如 redcyanBright。未知标记和无效的颜色值会被忽略,因此拼写错误不会破坏渲染。

以下示例定义了一个保持深色预设但重新着色提示强调色、错误文本和成功文本的主题:

{
  "name": "Dracula",
  "base": "dark",
  "overrides": {
    "claude": "#bd93f9",
    "error": "#ff5555",
    "success": "#50fa7b"
  }
}

Claude Code 监视 ~/.claude/themes/ 并在文件更改时重新加载,因此在编辑器中进行的编辑无需重启即可应用到正在运行的会话。

下面的参考涵盖了您可以在 overrides 中设置的标记。/theme 中的交互式编辑器显示相同的标记并带有实时预览,以及一些单用途强调色(如引导屏幕颜色),此处省略。

颜色标记参考

以下示例组合了以下几组中的标记:品牌强调色、计划模式边框、差异背景和全屏消息背景。

{
  "name": "Midnight",
  "base": "dark",
  "overrides": {
    "claude": "#a78bfa",
    "planMode": "#38bdf8",
    "diffAdded": "#14532d",
    "diffRemoved": "#7f1d1d",
    "userMessageBackground": "#1e1b4b"
  }
}

文本和强调色

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

标记控制
claude主要品牌强调色,用于加载动画和助手标签
text默认前景文本
inverseText在彩色背景上绘制的文本,如状态徽章
inactive次要文本,如提示、时间戳和禁用项
subtle淡色边框和去强调的次要文本
suggestion自动完成建议和选择器中的选择高亮
permission对话框边框,包括权限提示和选择器
remember记忆和 CLAUDE.md 指示器

状态颜色

在消息和指示器中表示成功、失败和警告状态。

标记控制
success成功消息和通过检查
error错误消息和失败
warning警告、注意消息和自动模式边框
merged已合并的拉取请求状态

输入框和模式指示器

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

标记控制
promptBorder默认权限模式下的输入框边框
planMode计划模式强调色和边框
autoAccept接受编辑模式强调色和边框
bashBorder输入 ! shell 命令时的输入框边框
ideIDE 连接指示器
fastMode快速模式指示器

差异渲染

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

标记控制
diffAdded添加行的背景
diffRemoved删除行的背景
diffAddedDimmed添加行附近未更改上下文的背景
diffRemovedDimmed删除行附近未更改上下文的背景
diffAddedWord添加行内的单词级高亮
diffRemovedWord删除行内的单词级高亮

全屏模式

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

标记控制
userMessageBackground对话记录中您消息背后的背景
userMessageBackgroundHover悬停或展开时消息背后的背景
messageActionsBackground操作栏打开时选中消息背后的背景
bashMessageBackgroundColor对话记录中 ! shell 命令条目背后的背景
memoryBackgroundColor对话记录中 # 记忆条目背后的背景
selectionBg鼠标选中文本的背景

用量表和说话者标签

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

标记控制
rate_limit_fill用量表的填充部分
rate_limit_empty用量表的未填充部分
briefLabelYou您消息上 You 标签的颜色
briefLabelClaude助手消息上 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 工作时跳动,请切换到全屏渲染模式。它绘制到终端为全屏应用保留的单独屏幕上,而不是追加到您的正常回滚中,这使内存使用保持平稳,并添加了鼠标滚动和选择支持。在此模式下,您在 Claude Code 内部使用鼠标或 PageUp 滚动,而不是使用终端的原生回滚;有关如何搜索和复制,请参阅全屏页面

运行 /tui fullscreen 可在当前会话中切换,同时保留您的对话。要使其成为默认设置,请在启动 Claude Code 之前设置 CLAUDE_CODE_NO_FLICKER 环境变量:

CLAUDE_CODE_NO_FLICKER=1 claude
$env:CLAUDE_CODE_NO_FLICKER = "1"; claude
{
  "env": {
    "CLAUDE_CODE_NO_FLICKER": "1"
  }
}

粘贴大量内容

当您向提示中粘贴超过 10,000 个字符时,Claude Code 会将输入折叠为 [Pasted text] 占位符,以便输入框保持可用。完整内容在您提交时仍会发送给 Claude。

VS Code 集成终端可能会在非常大的粘贴内容到达 Claude Code 之前丢弃字符,因此在该环境中优先使用基于文件的工作流。对于非常大的输入(如整个文件或长日志),请将内容写入文件并让 Claude 读取它,而不是粘贴。这使对话记录保持可读性,并让 Claude 在后续轮次中通过路径引用该文件。

使用 Vim 按键绑定编辑提示

Claude Code 包含一个用于提示输入的 Vim 风格编辑模式。通过 /config → Editor mode 启用它,或在 ~/.claude/settings.json 中将 editorMode 设置为 "vim"。将 Editor mode 设置回 normal 可关闭它。

Vim 模式支持 NORMAL 和 VISUAL 模式动作和操作符的子集,如 hjkl 导航、v/V 选择以及 d/c/y 配合文本对象。完整的按键表请参阅 Vim 编辑器模式参考。Vim 动作无法通过按键绑定文件重新映射。

在 INSERT 模式下按 Enter 仍会提交您的提示,这与标准 Vim 不同。在 NORMAL 模式下使用 oO,或使用 Ctrl+J 来插入新行。

相关资源

  • 交互模式:完整的键盘快捷键参考和 Vim 按键表
  • 按键绑定:重新映射任何 Claude Code 快捷键,包括 Enter 和 Shift+Enter
  • 全屏渲染:全屏模式下滚动、搜索和复制的详细信息
  • 钩子指南:适用于 Linux 和 Windows 的更多通知钩子示例
  • 故障排除:终端配置之外问题的修复