键位与快捷键
Slash 命令解决 what,快捷键解决 how。这一节把日常按键梳理清楚,让你敲 Claude Code 像敲自己熟悉的编辑器一样顺手。
默认按键速查
Claude Code 的 REPL 输入框在按键行为上大体沿用 readline 那一套,但在打断、退出、模式切换上做了自己的约定。下面这份表按频次从高到低排列,先看这一张,日常够用。
| 按键 | 行为 |
|---|---|
Enter | 提交当前输入 |
Shift+Enter | 输入框内换行,不提交 |
Esc | 打断 Claude 当前输出,保留上下文 |
Ctrl+C | 单击取消当前正在输入的这一条,双击退出程序 |
Ctrl+D | 空输入时直接退出程序 |
Ctrl+L | 清屏,等价于终端 clear,不清上下文 |
Ctrl+R | 反向搜索历史输入 |
Up / Down | 翻上一条 / 下一条历史输入 |
Tab | 命令、文件路径、Slash 命令补全 |
Shift+Tab | 循环切换 permission mode,见下面详解 |
Ctrl+A | 光标跳到行首 |
Ctrl+E | 光标跳到行尾 |
Ctrl+W | 删除光标左边的一个词 |
Ctrl+U | 清空当前输入行 |
几个容易踩坑的键位
Esc 和 Ctrl+C 的区别
这两个都能停下 Claude,但语义完全不同。
Esc 是打断,Claude 停下正在写的这一段,但整个会话上下文都还在,你可以立刻继续对话、给它新的指令。适合你看到 Claude 走偏了想立刻纠偏的场景。
Ctrl+C 单击是取消,取消的是你正在输入的这一条命令。如果 Claude 正在跑一个长任务,第一次 Ctrl+C 会尝试优雅停下,第二次 Ctrl+C 才会真正退出程序。设计成双击是为了防止你不小心一按就丢了整个会话。
Ctrl+D 什么时候真的会退出
Ctrl+D 只在输入框为空的时候才等价于退出。如果输入框里有字,Ctrl+D 只是删掉光标右边的一个字符。这是 readline 的传统语义,习惯了 shell 的你可以直接迁移过来。
Shift+Tab 循环 permission mode
这是 Claude Code 独有的键位,一按就在四种权限模式之间循环切换。
default -> acceptEdits -> plan -> bypassPermissions -> default界面下方会显示当前所在模式,很方便地在写代码时切到 acceptEdits 放开手脚,切到 plan 让 Claude 只给方案不动手。四种模式的详细语义见本章第四节权限模型。
Vim 模式
如果你已经习惯了 Vim 的编辑手感,在输入框里想直接用 hjkl 移动光标、用 dd 删行、用 u 撤销,可以开启 Vim 模式。
/vim再敲一次 /vim 关掉。开启后输入框会有 NORMAL 和 INSERT 两种状态,进入时默认在 INSERT。按 Esc 回到 NORMAL,按 i、a、o 回到 INSERT。常用的动作命令都能用:
hjkl光标移动w/b按词跳0/$行首行尾dd删整行yy复制整行p粘贴u撤销
提示
Vim 模式的开关状态会写进配置文件,下次启动自动恢复。所以你敲一次 /vim 之后不用每次都开。
自定义键位
默认键位不合手,可以自己改。Claude Code 会读取一份 JSON 格式的 keybindings 文件,位置在:
~/.claude/keybindings.json文件不存在就自己创建。格式是一个键位到动作的映射。举个例子,如果你想把 Ctrl+K 绑成清空当前输入,把 Ctrl+G 绑成打开 /status:
{
"keybindings": [
{
"key": "ctrl+k",
"command": "editor.clearInput"
},
{
"key": "ctrl+g",
"command": "workbench.action.runSlashCommand",
"args": { "command": "/status" }
}
]
}保存后重启 Claude Code 即可生效。你也可以覆盖已有键位,比如把双击 Ctrl+C 退出改成三击:
{
"keybindings": [
{
"key": "ctrl+c",
"command": "workbench.action.exit",
"when": "tripleClick"
}
]
}别覆盖 Esc
Esc 是打断 Claude 输出的救命键,别拿它去绑别的动作。真绑上了你就得靠 Ctrl+C 才能停下。
让新键位在团队里传出去
如果你团队里的人都用同一套自定义键位,可以把 keybindings.json 放到 dotfiles 仓库里同步,或者干脆写进项目仓库让新人 clone 完就有一致体验。Claude Code 不强制这个文件的位置,你也可以通过环境变量 CLAUDE_KEYBINDINGS_PATH 指向别处。
组合键的一点提示
一次按下多个键的组合,语法用 + 连接,例如 ctrl+shift+p。想触发两段式的和弦按键,写法是空格分隔,比如 ctrl+k ctrl+m 表示先按 Ctrl+K 松开再按 Ctrl+M。和弦按键容易和你系统里其他工具冲突,绑之前先确认没被 tmux、iTerm、Windows Terminal 抢走。
一句话总结
日常四把钥匙记牢:Esc 打断,Shift+Tab 切模式,Ctrl+C 双击退出,Tab 补全。剩下的按需查表。下一节讲 settings.json,让你把这些偏好持久化到配置层。