主题
交互模式(快捷键/Vim)
Claude Code 交互式会话中的键盘快捷键、输入模式(含 Vim 编辑模式)、命令历史、后台任务等终端交互能力的完整参考。
对你最该记的交互操作
结合你的真实用法(bypassPermissions、长会话、并行):
/context:会话变慢先看占用——你接了 5 个 MCP + 一堆插件,确认没撑爆。/compact//clear:长任务前压缩、切任务清空(省钱也省上下文)。- 双击
Esc//rewind:回退检查点(你改得快,这是后悔药)。 Ctrl+B:把当前任务转后台(配合claude agents)。Ctrl+R:反向搜历史命令;↑翻历史。Ctrl+O:展开 transcript / 折叠的 MCP 调用。Shift+Tab:循环权限模式——你常驻 bypass,偶尔想临时进 plan 模式审一下时用。- 多行输入:
Ctrl+J或\回车(所有终端通用)。
完整键位(含 Vim 模式、粘贴图片 Ctrl+V)见下方参考。
官方文档要点
以下为按官方文档整理的系统性参考。
是什么
交互模式是指在 Claude Code 交互式会话里通过键盘快捷键、输入模式(多行输入、Shell 模式、文件提及)、Vim 编辑模式、命令历史检索、后台 bash 任务、转录查看器(transcript viewer)等机制来高效操作终端的一整套功能。其中 Vim editor mode 提供完整的 NORMAL/INSERT/VISUAL 模式键位绑定。多数快捷键的可用性受平台与终端影响,部分 macOS 上的 Alt/Option 键快捷键需要先把 Option 配置成 Meta 键。
怎么工作
- General controls 是会话级控制:Ctrl+C 在有运行任务时中断,无任务时第一次按清空输入、第二次按退出 Claude Code;Ctrl+D 直接退出(EOF);Esc 中断当前回复/工具调用但保留已完成的工作;Esc+Esc 在输入框有文字时清空草稿并存入历史(Up 可召回),输入为空时打开 rewind 菜单(/en/checkpointing)。
- Ctrl+O 切换 transcript viewer,显示详细工具用量与执行,并展开默认折叠成一行(如 'Called slack 3 times')的 MCP 调用。Ctrl+L 强制整屏重绘,保留输入与历史,用于显示错乱时恢复。
- 多行输入有 5 种方式:\ + Enter(所有终端通用)、Option+Enter(macOS 启用 Option as Meta 后)、Shift+Enter(iTerm2/WezTerm/Ghostty/Kitty/Warp/Apple Terminal/Windows Terminal 原生支持)、Ctrl+J(任意终端免配置)、直接粘贴(代码块/日志)。VS Code、Cursor、Windsurf、Alacritty、Zed 需运行 /terminal-setup 安装 Shift+Enter 绑定。
- 输入开头的特殊字符触发快捷动作:/ 触发命令或 skill 菜单;! 进入 Shell mode 直接运行命令并把输出加入会话上下文;@ 触发文件路径自动补全。
- Vim editor mode 通过 /config → Editor mode 启用,包含 mode switching(Esc 进 NORMAL,i/I/a/A/o/O 进 INSERT,v/V 进 VISUAL)、navigation、editing、text objects、visual mode。特殊行为:在 NORMAL 模式下光标已在输入开头/结尾且无法继续移动时,j/k 和方向键改为导航命令历史。
- 命令历史按工作目录分别存储,运行 /clear 会重置输入历史但保留会话对话(可 resume);连续提交相同 prompt 只记一条。Ctrl+R 反向搜索历史,Ctrl+S 在 this session / this project / all projects 之间循环切换搜索范围。
- 后台 bash:Claude 运行后台命令时立即返回 background task ID,输出写入文件由 Read 工具读取,退出时自动清理;按 Ctrl+B 把普通 Bash 调用转入后台(tmux 用户按两次)。
- Prompt suggestions 作为复用父对话 prompt cache 的后台请求生成,缓存冷时跳过以省成本;Tab/右方向键采纳、开始输入则忽略。
怎么配置 / 用法
启用 Vim:/config → Editor mode。
切换权限模式:Shift+Tab(或某些配置下 Alt+M)在 default / acceptEdits / plan 及已启用的 auto / bypassPermissions 间循环。
macOS 启用 Option as Meta(Alt+B/F/Y/M/P 等所需):
- iTerm2:Settings → Profiles → Keys → General → Left/Right Option key 设为 "Esc+"
- Apple Terminal:Settings → Profiles → Keyboard → 勾选 "Use Option as Meta Key"
- VS Code:在 VS Code 设置中加 "terminal.integrated.macOptionIsMeta": true
安装 Shift+Enter 多行绑定(VS Code/Cursor/Windsurf/Alacritty/Zed):运行 /terminal-setup
禁用后台任务:环境变量 CLAUDE_CODE_DISABLE_BACKGROUND_TASKS=1 禁用 prompt suggestions:export CLAUDE_CODE_ENABLE_PROMPT_SUGGESTION=false(或 /config 切换) 跨会话共享任务列表:CLAUDE_CODE_TASK_LIST_ID=my-project claude(对应目录 ~/.claude/tasks/) 关闭自动 Session recap:/config 关闭 Session recap;按需生成用 /recap 外部编辑器显示上次回复:/config 打开 "Show last response in external editor" 重绑键位:transcript:toggleShowAll、transcript:exit、语音听写键(见 /en/keybindings、/en/voice-dictation)
什么时候用
- 需要快速中断/重定向 Claude 时用 Esc(保留已完成工作),而非 Ctrl+C(Ctrl+C 用于彻底中断或两次退出)
- 写长 prompt / 多行内容时用多行输入(Shift+Enter 或 +Enter 或 Ctrl+J)
- 想跑长任务又继续对话时用 Ctrl+B 后台化,或提示 Claude 后台运行
- 只想快速跑个 shell 命令并保留上下文用 ! 前缀(Shell mode);不需要 Claude 解释/批准
- 想问个一次性小问题又不污染主上下文、不打断长任务时用 /btw(无工具、单次回答、可按 f fork 成新会话)
- 习惯 Vim 键位的人用 /config 开 Editor mode;不习惯则保持默认 readline 风格
- 查找/复用历史输入用 Ctrl+R,并用 Ctrl+S 调整搜索范围
- 不要在非交互/print 模式期待 prompt suggestions 与 Session recap(默认关闭/跳过)
限制 / 坑
- 快捷键因平台与终端不同而异(may vary by platform and terminal)
- macOS 上 Alt+B、Alt+F、Alt+Y、Alt+M、Alt+P 必须先把 Option 配成 Meta 才生效
- Option+T 切换 extended thinking:自 v2.1.132 起在 macOS 无需配置 Option as Meta(此前需要)
- Vim 不支持 Ctrl+V 的 block-wise visual mode(Block-wise visual mode with Ctrl+V is not supported)
- Ctrl+T 切换代码块语法高亮仅在 /theme 选择菜单内有效;同样 Ctrl+T 在普通界面是切换 task list,需注意上下文
- transcript viewer 中的 ?、{ / }、[、v 等键需 fullscreen rendering 才可用
- history expansion(!)默认禁用
- 后台任务输出超过 5GB 会被自动终止,并在 stderr 注明原因
- /btw 无工具访问:只能基于已在上下文中的内容回答,不能读文件/跑命令/搜索;只有单次回答、无 overlay 内追问;fork(f)仅本地会话可用
- task list 显示区一次最多展示 5 个任务(最多 up to 5 tasks / up to 5 at a time)
- PR 状态需安装并认证 gh CLI(gh auth login);PR 状态每 60 秒刷新一次
- Session recap 需会话至少 3 turn、距上次完成 turn 至少 3 分钟且终端未聚焦才在后台生成;非交互模式始终跳过;不会连续出现两次
- prompt suggestions 在对话第一轮之后及 plan mode 自动跳过;print mode 默认关闭
- 部分内置命令并非对所有用户可见,取决于平台或套餐(plan)
硬事实速查(40 条)
- Ctrl+C:有任务时中断;无任务时第一次清空输入、第二次退出
- Ctrl+D:退出会话(EOF)
- Ctrl+X Ctrl+K:杀掉本会话所有后台 subagent,3 秒内按两次确认
- Ctrl+G 或 Ctrl+X Ctrl+E:在默认文本编辑器中打开编辑 prompt(Ctrl+X Ctrl+E 是 readline 原生绑定)
- Ctrl+L:强制整屏重绘,保留输入与历史
- Ctrl+O:切换 transcript viewer,展开默认折叠的 MCP 调用
- Ctrl+R:反向搜索命令历史
- Ctrl+V / Cmd+V(iTerm2) / Alt+V(Windows 和 WSL):从剪贴板粘贴图片,插入 [Image #N] chip;WSL 上 Ctrl+V 与 Alt+V 都绑定,终端拦截 Ctrl+V 时用 Alt+V
- Ctrl+B:后台化运行任务(tmux 用户按两次)
- Ctrl+T:切换 task list 显示
- Esc:中断 Claude 当前回复/工具调用,保留已完成工作
- Esc+Esc:有文字时清空草稿存入历史;输入为空时打开 rewind 菜单
- Shift+Tab 或 Alt+M:循环切换权限模式 default / acceptEdits / plan / auto / bypassPermissions
- Option+P(macOS) 或 Alt+P:切换模型(不清空 prompt)
- Option+T(macOS) 或 Alt+T:切换 extended thinking;v2.1.132 起 macOS 免配置 Option as Meta
- Option+O(macOS) 或 Alt+O:切换 fast mode
- 文本编辑键:Ctrl+A 行首、Ctrl+E 行尾、Ctrl+K 删到行尾、Ctrl+U 删到行首、Ctrl+W 删前一词、Ctrl+Y 粘贴删除的文本、Alt+Y(在 Ctrl+Y 后)循环粘贴历史、Alt+B 后退一词、Alt+F 前进一词
- macOS 上 iTerm2/Terminal.app 把 Cmd+Backspace 映射到 Ctrl+U;Windows 上 Ctrl+Backspace 也删前一词
- 多行输入:+Enter(通用)、Option+Enter(macOS Option as Meta 后)、Shift+Enter(iTerm2/WezTerm/Ghostty/Kitty/Warp/Apple Terminal/Windows Terminal 原生)、Ctrl+J(任意终端免配置)、直接粘贴
- /terminal-setup:为 VS Code/Cursor/Windsurf/Alacritty/Zed 安装 Shift+Enter 绑定
- 输入开头:/ 命令或 skill;! Shell 模式;@ 文件路径补全
- Vim 启用:/config → Editor mode
- Vim 模式切换:Esc→NORMAL,i 光标前插入,I 行首插入,a 光标后插入,A 行尾插入,o 下方开行,O 上方开行,v 字符可视,V 行可视
- Vim navigation:h/j/k/l 左下上右,Space 右移,w 下一词,e 词尾,b 上一词,0 行首,$ 行尾,^ 首个非空白,gg 输入开头,G 输入结尾,f/F/t/T{char} 跳转字符,; 重复 f/F/t/T,, 反向重复,/ 同 Ctrl+R
- Vim editing:x 删字符,dd 删行,D 删到行尾,dw/de/db,cc 改行,C 改到行尾,cw/ce/cb,yy/Y 复制行,yw/ye/yb,p 后粘贴,P 前粘贴,>> 缩进,<< 反缩进,J 合并行,u 撤销,. 重复上次更改
- Vim text objects(配合 d/c/y):iw/aw、iW/aW(whitespace-delimited WORD)、i"/a"、i'/a'、i(/a(、i[/a[、i{/a{
- Vim visual mode:d/x 删、y 复制、c/s 改、p 替换、r{char} 替换每个选中字符、~/u/U 大小写切换、>/< 缩进、J 合并、o 交换光标与锚点、v/V 切换字符/行或退出;不支持 Ctrl+V block-wise
- NORMAL 模式光标到边界无法移动时,j/k 与方向键改为导航命令历史
- transcript viewer 快捷键(需 fullscreen):? 帮助面板、{ / } 跳转上/下一个用户 prompt、Ctrl+E 切换显示全部内容、[ 写入终端原生 scrollback、v 写临时文件并用 $VISUAL 或 $EDITOR 打开、q/Ctrl+C/Esc 退出
- Ctrl+R 反向搜索:Ctrl+R 循环更旧匹配,Ctrl+S 循环范围(this session/this project/all projects),Tab 或 Esc 接受并继续编辑,Enter 接受并立即执行,Ctrl+C 取消复原,空搜索时 Backspace 取消
- 语音听写:按住或点按 Space(需启用 voice dictation,/voice tap 为点按切换)
- 后台任务自动清理;输出超 5GB 自动终止;CLAUDE_CODE_DISABLE_BACKGROUND_TASKS=1 禁用
- Shell mode(!):把命令与输出加入上下文、显示实时输出、支持 Ctrl+B 后台化、Tab 基于本项目历史 ! 命令补全、空 prompt 用 Escape/Backspace/Ctrl+U 退出;粘贴以 ! 开头的文本自动进入 shell mode
- /btw:问临时小问题不入对话历史;overlay 键 Space/Enter/Escape 关闭、Up/Down 滚动、f fork 新会话、x 清除早前 /btw 列表
- task list:Ctrl+T 切换,最多显示 5 个;CLAUDE_CODE_TASK_LIST_ID 设命名目录于 ~/.claude/tasks/ 实现跨会话共享
- Session recap:默认开启,需至少 3 turn、距上次 turn≥3 分钟且终端失焦时后台生成,/recap 按需生成,/config 可关闭,非交互模式跳过
- prompt suggestions:CLAUDE_CODE_ENABLE_PROMPT_SUGGESTION=false 禁用;Tab/右方向键采纳;--prompt-suggestions 配合 --output-format stream-json --verbose 发出 prompt_suggestion 消息
- PR 状态:footer 显示可点链接(如 PR #446),下划线颜色 绿=approved/黄=pending/红=changes requested/灰=draft,Cmd+click(Mac)或Ctrl+click(Win/Linux)打开,每 60 秒刷新,需 gh CLI 已认证
- 可重绑键位:transcript:toggleShowAll、transcript:exit(见 /en/keybindings)
- history expansion(!) 默认禁用;输入历史按工作目录存储,/clear 重置输入历史但保留会话对话