一句话速记。 第一天就能回本的五个键:Esc 在不丢上下文的前提下中断 Claude,Esc Esc 清空草稿(输入框为空时则打开回滚菜单),Shift + Tab 切换权限模式,Ctrl + R 反向搜索 prompt 历史,Ctrl + O 切换 transcript 查看器。下面其余的都是长尾,均对照 Claude Code 官方的 interactive-mode 和 permission-mode 文档核实到 2026 年 6 月。任意会话中按 ?(全屏渲染下)可看到你这套环境实际生效的键位,跑 /keybindings 即可改键。
Claude Code 是 Anthropic 的命令行编程 agent,能在终端里读、写、运行代码,只跑 Anthropic 自家模型(2026 年 6 月为 Opus 4.7 和 Sonnet 4.6)。因为它就活在终端里,只要你别再去摸鼠标,几乎一切都只差一个按键。本文面向已经能跑通 claude、想把双手留在键盘上的开发者。如果还没装好,先看 Claude Code 新手指南,再回来。
三条能避开九成”这个快捷键坏了”工单的初始设置:
Shift + Enter现在在 iTerm2、WezTerm、Ghostty、Kitty、Warp、Apple Terminal、Windows Terminal 里原生换行。在 VS Code、Cursor、Alacritty、Zed 里则需先跑一次/terminal-setup装上键位。- macOS 上
Option + 字母和Alt + 字母这类组合需要把 Option 配成 Meta(或 “Esc+”)。一个例外:从 Claude Code v2.1.132 起,Option + T(切换 extended thinking)在 macOS 上无需此配置即可用。 - 在 transcript 查看器(全屏渲染)里按
?确认你这个版本实际带哪些键。版本和终端之间确实有差异,所以请把官方的?面板和 Claude Code interactive-mode 文档当作权威依据,本文当作带注解的对照地图。
会话级控制
| 快捷键 | 作用 | 什么时候用 |
|---|---|---|
Esc | 中断 Claude 当前回复或工具调用 | 中途改方向;已完成的产出仍留在上下文里 |
Esc Esc | 清空输入草稿(存入历史),输入框为空时则打开回滚菜单 | 抹掉打了一半的 prompt,或把代码和会话回滚到之前的 checkpoint |
Ctrl + C | 中断运行;空闲时第一下清空输入,第二下退出 | 停止运行、清空输入框,或彻底退出 |
Ctrl + D | 退出会话(EOF) | 一键退出,比 Ctrl + C 按两次省事 |
Ctrl + O | 切换 transcript 查看器 | 查看完整工具调用;展开被折成一行的 MCP 调用 |
Ctrl + L | 重绘终端屏幕 | 显示残影或局部空白时;历史会保留 |
Ctrl + T | 显示 / 隐藏任务列表 | 多步任务时查看待办 / 进行中 / 已完成(最多显示 5 条) |
Ctrl + B | 把当前任务放到后台 | 长 agent 或 shell 任务不想占住界面(tmux 需按两下) |
Ctrl + X Ctrl + K | 关掉本会话所有后台 subagent | 3 秒内按两次确认 |
Ctrl + G 或 Ctrl + X Ctrl + E | 在 $EDITOR 里打开当前 prompt | 用真正的 Vim / VS Code 编辑长 prompt,存盘即发送 |
Ctrl + Z | 把整个进程挂到 shell 后台 | 临时切回 bash 干别的;用 fg 回来 |
Esc 和 Ctrl + C 的区别要记牢:Esc 只中断当前一轮,已写的代码、读到的文件还在上下文里。而双击 Esc 现在会看情况:输入框里有字就清掉那段草稿(用 Up 找回);输入框为空则打开 rewind / checkpoint 菜单,让你把代码和会话恢复到更早的某个点。
权限模式切换
Shift + Tab 是 Claude Code 里最值钱的一个键。按一次切一档,当前模式显示在状态栏。截至 2026 年 6 月,官方文档定义了六种权限模式,但默认循环里只有三种:
Shift + Tab 循环 | 无需确认即可执行 | 适合 |
|---|---|---|
| default | 仅读取 | 敏感任务;逐个动作审查 |
| acceptEdits | 读取、文件编辑,以及工作目录内常见文件系统命令(mkdir、touch、rm、mv、cp、sed) | 改完用 git diff 整体复查的迭代 |
| plan | 仅读取,然后产出一份书面计划 | 让 Claude 动手前先把代码库摸清楚 |
另有三种模式,只有在启动时显式开启才会进入循环,或干脆从不出现:
- auto——2026 年的重头新增。Claude 不再逐步确认,但有一个独立的分类器模型在每个动作执行前先审一遍,挡掉危险操作:
curl | bash、强推main、云端批量删除、把密钥发往陌生端点等。满足条件后它才会进入循环(Claude Code v2.1.83+,Sonnet 4.6 / Opus 4.6+;Team 和 Enterprise 需管理员先开启)。它目前是研究预览,不等于安全保证。 - dontAsk——自动拒绝所有不在
allow规则里的动作。从不进循环;用claude --permission-mode dontAsk设置,适合锁死的 CI。 - bypassPermissions——跳过一切检查(即旧称的”YOLO”)。只有以
--dangerously-skip-permissions或--permission-mode bypassPermissions启动后才出现。仅在隔离的容器或虚机里用,它对 prompt 注入毫无防护。想要”免确认但有安全网”,请用 auto 而非它。
一个实用习惯:陌生仓库留在 default,要整体复查的重构切到 acceptEdits,想逼 Claude 先想再写就用 plan。注意:除 bypassPermissions 外,任何模式(包括 acceptEdits)都不会自动写入 .git、.zshrc、.claude 这类受保护路径。
输入编辑(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 #教程