主题
配置你的终端
按症状修终端:换行、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 关键词以七色彩虹渐变渲染