这篇讲什么
Claude Code 所有键盘快捷键的完整参考:会话控制、模式切换、输入编辑、历史记录、IDE 集成与终端兼容性问题。
本文涉及的工具 / 概念:
- Claude Code: Anthropic 推出的命令行 AI 编程 agent,能在你的终端里读、写、运行项目代码。
- Claude: Anthropic 的对话式 AI 助手,类似 ChatGPT,支持文件、长文档和工具集成。
这篇适合谁看
已经能跑通 claude 命令、但想把双手留在键盘上、把”找按键”变成”按下就行”的开发者。如果还没装好 Claude Code,先看 Claude Code 新手指南 再回来。
什么时候适合用
- 长 prompt 写多了想用 readline 风格快速改写。
- 想在”规划”、“自动接受编辑”、“默认审查”几种权限模式之间快速切换。
- agent 跑偏想立即中断、回滚一步、保留有用产出。
- 切换终端(iTerm2、Apple Terminal、VS Code、JetBrains、Warp)后某个键不响应,需要排查。
开始前准备
- 进入会话后先按
?,把当前环境实际生效的快捷键看一遍——本文给的是常见组合,但不同版本和终端可能有差异。 - 如果
Shift + Enter不能换行,先运行/terminal-setup,让 Claude 自动写入终端配置。 - macOS 用户在 iTerm2 / Apple Terminal 把 Option 配成 Meta(或 Esc+),否则
Option + 字母类组合全部会失效。
会话级控制
| 快捷键 | 作用 | 什么时候用 |
|---|---|---|
? | 显示当前环境的快捷键帮助 | 忘了按键、换了终端、刚装好时先看 |
Ctrl + C | 取消当前输入;连续两次退出会话 | 想清空输入框,或彻底结束 Claude Code |
Ctrl + D | 在空输入时退出会话 | 一行命令搞定退出,比 Ctrl + C 两次更快 |
Esc | 中断 Claude 当前回复或工具调用 | 想保留已完成部分,但马上改方向 |
Esc 然后再按 Esc | 打开 rewind / checkpoint 菜单 | 回到前面某次工具调用、撤销一段代码或会话状态 |
Ctrl + L | 重绘终端屏幕 | 输出残影、字符错位、被外部 log 打乱时 |
Ctrl + Z | 把整个 Claude 进程挂到后台 | 临时切回 shell 干别的;用 fg 回到 Claude |
Ctrl + B | 把当前任务放到后台继续跑 | 长 agent 任务不想占住主界面 |
Ctrl + T | 显示 / 隐藏后台任务列表 | 同时有 subagent、后台命令、长任务时查看进度 |
Esc 和 Ctrl + C 的区别要记牢:Esc 只中断当前一轮,已写的代码、读到的文件还在上下文里;Ctrl + C 会清空当前输入框。
权限模式切换
| 快捷键 | 作用 |
|---|---|
Shift + Tab | 在权限模式之间循环切换 |
常见模式(具体名字以你菜单显示为准):
- Default / Ask:每个写入操作都向你确认。第一次跑陌生任务用这个最安全。
- Auto-accept edits:自动接受文件编辑,但 Bash 仍要确认。重构、批量改文件、跑测试循环时省心。
- Plan mode:只读、只规划,不允许写文件。让 Claude 先想清楚再动手时用。
- Bypass / YOLO:跳过几乎所有确认。只在隔离环境(worktree、容器、一次性目录)才考虑。
Shift + Tab 按一次切一档。如果搞不清楚当前在哪一档,看输入框边上或顶部的状态指示。
输入编辑(readline 风格)
Claude Code 的输入框沿用了 readline / Emacs 风格,所有在 bash、zsh 里好用的快捷键,这里基本都能用。
| 快捷键 | 作用 |
|---|---|
Ctrl + A | 跳到行首 |
Ctrl + E | 跳到行尾 |
Ctrl + F / → | 向右移一个字符 |
Ctrl + B 在输入框中 / ← | 向左移一个字符(注意:Ctrl + B 在非输入态是放后台) |
Alt + F / Option + → | 向右跳一个词 |
Alt + B / Option + ← | 向左跳一个词 |
Ctrl + K | 删除从光标到行尾 |
Ctrl + U | 删除从光标到行首 |
Ctrl + W | 删除前一个词 |
Alt + D | 删除后一个词 |
Ctrl + H / Backspace | 删除前一个字符 |
Ctrl + Y | 粘回最近一次删除的文本(kill ring) |
Ctrl + T 在输入框中 | 交换前后两个字符 |
注:Ctrl + T 既是输入态的”换字符”,又是会话态的”任务列表”。Claude Code 会根据焦点判断该走哪种行为。
多行输入
| 输入 | 作用 | 兼容性 |
|---|---|---|
Shift + Enter | 换行 | 大多数现代终端,配置后可用 |
Ctrl + J | 换行 | 几乎所有终端通用 |
\ 然后 Enter | 换行 | 任何终端都能用,最稳 |
Option + Enter | 换行 | iTerm2 / Apple Terminal 把 Option 设为 Meta 后可用 |
| 直接粘贴多行 | 自动保留换行 | 终端要开启”括号粘贴 / bracketed paste” |
如果 Shift + Enter 不响应:跑 /terminal-setup;再不行就改用 \ + Enter,不要纠结。
写多段需求、贴日志、列 checklist 时优先用多行输入,不要把整段揉成一行——Claude 会更容易抓重点。
历史记录与重用
| 快捷键 | 作用 |
|---|---|
↑ | 上一条历史输入(在多行内则是上移光标) |
↓ | 下一条历史输入(在多行内则是下移光标) |
Ctrl + R | 反向搜索历史输入 |
Ctrl + P / Ctrl + N | 等价于 ↑ / ↓ |
/resume | 列出可恢复的会话并选择 |
Ctrl + R 配合关键词最实用:写过一段 200 行的迁移 prompt?敲 Ctrl + R 然后输 migration,比翻文档快。
引用文件、命令与 shell
| 输入 | 作用 |
|---|---|
@ + 路径 | 引用文件或目录,按 Tab 自动补全 |
/ 放在开头 | 打开命令 / skill 菜单 |
! 放在开头 | 进入 shell 模式,命令输出会带回上下文 |
# 放在开头 | 写一条 memory(追加到 CLAUDE.md 或用户级 memory) |
| 拖拽文件到终端 | 把文件路径塞进输入 |
| 粘贴图片 | 多数终端会作为图片上传给 Claude |
@ 和 Tab 是协同的:先 @,再敲首字母,再 Tab,会按目录层级补全。比硬记路径快得多。
! 不只是”我自己跑一条命令”,而是”让 Claude 看到这条命令的输出”。!git status、!npm test、!ls -la dist 都是常见模式。
macOS 上的模型与模式切换
下列快捷键依赖 Option 被配置为 Meta(iTerm2: Profiles → Keys → “Esc+“;Apple Terminal: Settings → Profiles → Keyboard → “Use Option as Meta key”)。
| 快捷键 | 作用 |
|---|---|
Option + P | 切换主模型(Opus / Sonnet / Haiku 等) |
Option + T | 切换 thinking 强度 |
Option + O | 切换 fast mode(在支持的 Opus 版本上更快出字) |
Option + M | 调出 memory / CLAUDE.md 编辑 |
按下没反应基本两种原因:Option 没配成 Meta;当前版本没有这个快捷键。先按 ? 确认。
macOS 终端层快捷键
下面这些是终端 App 自带的,不属于 Claude Code,但你在跑 Claude Code 时几乎每天都会用到。把这一节放在身边,能省掉一半”鼠标点点点”的动作。
通用 macOS 终端
| 快捷键 | 作用 | 什么时候用 |
|---|---|---|
Cmd + C | 复制选中文本 | 拷贝 Claude 输出、错误信息、生成的命令 |
Cmd + V | 粘贴 | 把日志、代码、链接贴回 Claude |
Cmd + K | 清屏并清空 scrollback | 审 diff 前想要一块干净屏幕 |
Cmd + T | 新开一个标签 | 同时跑两个 claude 会话或一边跑 npm run dev |
Cmd + W | 关闭当前标签或窗口 | 会话跑完直接关 |
Cmd + N | 新开一个终端窗口 | 想要独立窗口而不是标签 |
Cmd + 1…Cmd + 9 | 切到第 N 个标签 | 多会话时快速跳转 |
Cmd + Shift + [ / ] | 上一个 / 下一个标签 | 顺序遍历标签 |
Cmd + + / Cmd + - | 放大 / 缩小字号 | 长 prompt 看不清时临时放大;演示时投屏 |
Cmd + 0 | 字号还原 | 改完调回默认 |
Cmd + F | 在 scrollback 里搜索 | 翻找前面 Claude 的输出,不一定要靠 Ctrl + R |
Cmd + Q | 退出终端 App | 注意:会同时关掉所有正在跑的 claude 会话 |
Cmd + H | 隐藏终端窗口 | agent 跑长任务时把屏幕让给别的工作 |
Cmd + M | 最小化窗口 | 同上 |
Cmd + Tab | 切换 App | 等 Claude 跑长任务时切走 |
Cmd + ~ | 在同一 App 的多个窗口之间切换 | 同时开多个终端窗口时跳转 |
Fn 连按两下 | 启动 macOS dictation | 不想打字时口述 prompt(多数终端 App 支持) |
Cmd + . | 取消(部分终端把它映射成 Ctrl + C) | 偶尔在某些 GUI 终端代替 Ctrl + C |
Cmd + K 和 Ctrl + L 都能”让屏幕干净”,但语义不同:Cmd + K 清掉 scrollback(往上翻不到),Ctrl + L 只是重绘当前帧(往上翻还在)。审 diff 前用 Cmd + K,跑 agent 中途用 Ctrl + L。
iTerm2 专属
| 快捷键 | 作用 |
|---|---|
Cmd + D | 垂直分屏(左右) |
Cmd + Shift + D | 水平分屏(上下) |
Cmd + Option + ↑ / ↓ / ← / → | 在分屏面板之间切换 |
Cmd + Shift + Enter | 当前面板临时全屏 / 还原 |
Cmd + ; | 自动补全曾经敲过的命令 |
Cmd + Shift + H | 历史粘贴板 |
Cmd + Option + B | Instant Replay(回放终端) |
Cmd + R | 清屏(iTerm2 别名) |
Cmd + Shift + S | 把当前会话存成 .txt |
iTerm2 分屏特别适合”左边 Claude 在跑、右边自己看 log / 跑测试 / 改 prompt 草稿”。
Warp 专属
| 快捷键 | 作用 |
|---|---|
Cmd + P | Command Palette |
Cmd + R | Workflow 搜索 |
Ctrl + R | 命令历史搜索 |
Cmd + D / Cmd + Shift + D | 分屏 |
Cmd + Enter | AI Command Suggest(如启用) |
Cmd + Shift + B | 跳到上一个 block |
Warp 的 block 模式遇到 claude 这种全屏交互式 UI 会自动让出渲染。如果 UI 错乱,先跑 /terminal-setup;还不行就把 Warp AI 输入提示临时关掉,或者换 iTerm2。
Apple Terminal 专属
| 快捷键 | 作用 |
|---|---|
Cmd + I | 当前会话 Inspector(改光标颜色、标题等) |
Cmd + S | 把 scrollback 存成文件 |
Cmd + Shift + N | 新窗口(带当前 profile) |
Cmd + Option + 方向键 | 在标签之间跳转 |
Ghostty / Alacritty / Kitty 用户
这几个终端的默认快捷键和 iTerm2 不完全一样,但都遵循”Cmd + 字母”惯例。它们的优点是对 ANSI/真彩色/Unicode 支持更稳——跑 Claude Code 几乎不需要 /terminal-setup。具体键映射请按 Cmd + , 打开偏好查阅。
让 macOS 修饰键和 Claude Code 协同
如果你切了一次终端、Option + 字母 全失灵了,95% 是这里的设置:
- iTerm2:Settings → Profiles → Keys → “Left/Right Option key” 改成 Esc+。
- Apple Terminal:Settings → Profiles → Keyboard → 勾 Use Option as Meta key。
- VS Code 内置终端:把
terminal.integrated.macOptionIsMeta设为true。 - JetBrains 内置终端:Settings → Tools → Terminal → 勾 Option as meta key。
- Warp / Ghostty / Kitty:默认就把 Option 当 Meta,多数情况不用动。
设置改完不用重启 Claude Code,但需要新开一个终端会话才会生效。
VS Code / JetBrains 集成
装了 Claude Code IDE 扩展后,常用:
| 快捷键 | 作用 |
|---|---|
Cmd + Esc (mac) / Ctrl + Esc (Win/Linux) | 启动或聚焦 Claude Code 面板 |
Cmd + Alt + K / Ctrl + Alt + K | 把当前选中的代码作为引用插入到 Claude 输入框 |
在 diff 视图按 Cmd + S | 接受 Claude 的修改 |
在 diff 视图按 Cmd + Z | 撤销最近一步 |
IDE 集成的真正价值是 diff 体验和”选中代码 + 一句话”的快速反馈,比纯终端粘代码更快。
终端兼容性速查
按”先看症状再排查”的顺序:
Shift + Enter不换行 → 跑/terminal-setup;不行就用\+Enter。Option + 字母没反应 → 终端 Option 没配成 Meta。- 粘贴时格式错乱、所有换行变空格 → 打开 bracketed paste(iTerm2 默认开;Apple Terminal 有时被禁用)。
- 拷贝粘贴乱码 → 终端编码不是 UTF-8。
Ctrl + 字母被系统拦截(如Ctrl + T被新标签页吃了)→ 换终端,或在终端设置里关掉冲突的全局快捷键。- JetBrains 里 IDE 集成没反应 → 检查 Claude Code 插件是否启用,再确认
claude在 PATH 里。
实操:把快捷键肌肉记忆下来
- 第一周只强制自己用三个:
Esc(中断)、Shift + Tab(切模式)、Ctrl + R(搜历史)。 - 第二周加上输入编辑三件套:
Ctrl + A、Ctrl + E、Ctrl + W。 - 第三周再加
Esc + Esc(rewind)和Ctrl + T(任务列表)。 - 最后练
@引用 +!shell +#memory,把”敲长 prompt”逐步替换成”一行内拉进上下文”。
不要一上来背全表。每周固定三个,按真实任务用出去,比看十次表都管用。
完成后检查
- 是否还在用鼠标点输入框中间——如果是,说明
Ctrl + A/Ctrl + E没养成习惯。 - 是否还在 retry 一个跑偏的 agent——
Esc + Esc回滚一步通常比让它继续硬拼更省时间。 - 是否所有写入都在 ask 一次确认——可以考虑
Shift + Tab切到 auto-accept,仅在隔离工作树里这么做。
容易踩的坑
- 按了
Ctrl + C两次直接退出会话,丢掉了刚生成的内容——用Esc中断这一轮就够。 - 在 plan 模式下让 Claude “写代码”,结果它说写不了:那是因为权限模式没切回去,
Shift + Tab一下即可。 - macOS 上
Option + P等没反应,又怀疑 Claude Code 坏了——99% 是 Option 没配成 Meta。 - 不知道当前能用哪些命令,凭印象敲
/foo全是错的——直接按/看菜单,按?看快捷键。 - 把整段需求塞成一行——用
\+Enter或Ctrl + J写多行,Claude 抓重点更准。
FAQ
Q:Esc 和 Ctrl + C 在 Claude Code 里有什么区别? A:Esc 只中断当前一轮,已写的代码、读到的文件、上下文都还在。Ctrl + C 会清空当前输入框,连续按两次直接退出会话。要保留上下文只换方向用 Esc,要重写整段输入用 Ctrl + C。
Q:Esc + Esc 是干什么的?
A:打开 rewind / checkpoint 菜单,让你回到之前某一次工具调用或会话状态——撤销一段代码改动或会话漂移的最快办法。agent 跑偏时通常 Esc + Esc 回滚一步比让它继续硬拼更省时间。
Q:macOS 上 Option + P / T / O 没反应?
A:99% 是终端 Option 没配成 Meta。iTerm2 在 Profiles → Keys 改成 “Esc+”;Apple Terminal 在 Profiles → Keyboard 勾 “Use Option as Meta key”;VS Code 设 terminal.integrated.macOptionIsMeta: true。改完新开一个终端会话生效。
Q:Shift + Enter 不换行怎么办?
A:先跑 /terminal-setup 让 Claude 自动写入终端配置。还不行就改用 \ 然后 Enter,或 Ctrl + J——这两个在任何终端都能用,不必纠结 Shift + Enter。
相关阅读
标签: #Claude #Claude Code #教程