Skip to content

配置你的终端

按症状修终端:换行、Option 键、提示音、tmux、主题与 Vim 模式。

是什么

Claude Code 在任何终端无需配置即可运行,本页只用于某些行为不符合预期时按症状排查。它讲的是如何让终端向 Claude Code 发送正确的信号(换行、Option 修饰键、铃声/通知、tmux 透传、全屏渲染等),而不是改 Claude Code 自身响应哪些键。

若要改 Claude Code 自身的按键绑定,应转去 keybindings 页面;本页聚焦终端侧设置以及主题、Vim 编辑模式等界面相关项。

怎么工作

  • 多行输入:Enter 提交,Ctrl+J 或先输入 \ 再按 Enter 可插入换行,二者在所有终端无需设置即可用;Shift+Enter 支持度因终端而异
  • Ghostty、Kitty、iTerm2、WezTerm、Warp、Apple Terminal、Windows Terminal 的 Shift+Enter 开箱即用;VS Code、Cursor、Windsurf、Alacritty、Zed 需运行一次 /terminal-setup;gnome-terminal 与 JetBrains 系 IDE 不支持,需用 Ctrl+J 或 \ 加 Enter
  • macOS 上多数终端默认不把 Option 当修饰键,需开启 Use Option as Meta Key,Option+Enter(换行)、Option+P(切模型)等才生效
  • 通知:默认仅 Ghostty、Kitty、iTerm2 发桌面通知,其他终端可把 preferredNotifChannel 设为 terminal_bell 响铃,或配置 Notification hook 播放自定义声音
  • tmux 内运行会破坏 Shift+Enter 与通知/进度条,需在 ~/.tmux.conf 加透传与 extended-keys 配置并 source
  • 用 /theme 或 /config 选与终端匹配的主题,auto 选项会跟随系统明暗;自定义主题为 ~/.claude/themes/ 下的 JSON 文件
  • 显示闪烁或滚动跳动时用 /tui fullscreen 切全屏渲染,或设环境变量 CLAUDE_CODE_NO_FLICKER
  • Vim 编辑模式经 /config 的 Editor mode 或把 editorMode 设为 vim 开启

怎么配置 / 用法

tmux(~/.tmux.conf,改后运行 tmux source-file ~/.tmux.conf):

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

Notification hook 播放声音(~/.claude/settings.json,macOS 示例):

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

默认全屏渲染(~/.claude/settings.json):

json
{
  "env": { "CLAUDE_CODE_NO_FLICKER": "1" }
}

自定义主题(~/.claude/themes/dracula.json):

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

什么时候用

  • Shift+Enter 提交而非换行时
  • macOS 上 Option 快捷键(如 Option+Enter、Option+P)无反应时
  • Claude 完成任务或等待权限确认时听不到提示音、看不到通知时
  • 在 tmux 内运行 Claude Code 时
  • 显示闪烁、滚动位置跳动时,或想在提示框里用 Vim 键位时

限制 / 坑

  • Claude Code 不控制终端自身的配色方案,那由终端应用设定
  • gnome-terminal 与 JetBrains 系 IDE 不支持 Shift+Enter 换行
  • Vim 动作不能通过 keybindings 文件重映射
  • 自定义主题需 Claude Code v2.1.118 或更高版本
  • VS Code 集成终端在超大粘贴时可能丢字符,建议改用文件方式

硬事实速查(11 条)

  • 在 VS Code、Cursor、Windsurf 中 /terminal-setup 还会把 terminal.integrated.gpuAcceleration 设为 off 防止乱码,并调整 mouseWheelScrollSensitivity
  • /terminal-setup 应在宿主终端而非 tmux/screen 内运行;已配置过会提示如 already configured 而不改动
  • iTerm2 里把左右 Option 键设为 Esc+(Settings → Profiles → Keys → General);运行 /terminal-setup 会开启剪贴板访问以支持 /copy,需重启 iTerm2
  • Apple Terminal 开启 Option 作 Meta:Settings → Profiles → Keyboard 勾选 Use Option as Meta Key
  • 桌面通知可经 SSH 到达本机;Ghostty、Kitty 自动转发,iTerm2 需勾选 Notification Center Alerts 并启用转义序列告警
  • 粘贴超过 10,000 字符时输入框会折叠为 [Pasted text] 占位符,提交时完整内容仍会发送给 Claude
  • 自定义主题 JSON 三个可选字段:name、base、overrides;base 可取 dark、light、dark-daltonized、light-daltonized、dark-ansi、light-ansi,默认 dark
  • 颜色值支持 #rrggbb、#rgb、rgb(r,g,b)、ansi256(n) 或 ansi:<name>;未知 token 与非法颜色值被忽略
  • ~/.claude/themes/ 被监听,文件改动热重载,运行中会话无需重启
  • Vim 模式下 Enter 在 INSERT 模式仍提交(与标准 Vim 不同),用 NORMAL 模式的 o/O 或 Ctrl+J 插入换行
  • 子代理/并行任务用八种命名颜色区分;ultrathink/ultraplan 关键词以七色彩虹渐变渲染

官方出处:https://code.claude.com/docs/en/terminal-config