Skip to content

键位与快捷键

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 独有的键位,一按就在四种权限模式之间循环切换。

text
default -> acceptEdits -> plan -> bypassPermissions -> default

界面下方会显示当前所在模式,很方便地在写代码时切到 acceptEdits 放开手脚,切到 plan 让 Claude 只给方案不动手。四种模式的详细语义见本章第四节权限模型。

Vim 模式

如果你已经习惯了 Vim 的编辑手感,在输入框里想直接用 hjkl 移动光标、用 dd 删行、用 u 撤销,可以开启 Vim 模式。

text
/vim

再敲一次 /vim 关掉。开启后输入框会有 NORMAL 和 INSERT 两种状态,进入时默认在 INSERT。按 Esc 回到 NORMAL,按 iao 回到 INSERT。常用的动作命令都能用:

  • hjkl 光标移动
  • w / b 按词跳
  • 0 / $ 行首行尾
  • dd 删整行
  • yy 复制整行
  • p 粘贴
  • u 撤销

提示

Vim 模式的开关状态会写进配置文件,下次启动自动恢复。所以你敲一次 /vim 之后不用每次都开。

自定义键位

默认键位不合手,可以自己改。Claude Code 会读取一份 JSON 格式的 keybindings 文件,位置在:

text
~/.claude/keybindings.json

文件不存在就自己创建。格式是一个键位到动作的映射。举个例子,如果你想把 Ctrl+K 绑成清空当前输入,把 Ctrl+G 绑成打开 /status

json
{
  "keybindings": [
    {
      "key": "ctrl+k",
      "command": "editor.clearInput"
    },
    {
      "key": "ctrl+g",
      "command": "workbench.action.runSlashCommand",
      "args": { "command": "/status" }
    }
  ]
}

保存后重启 Claude Code 即可生效。你也可以覆盖已有键位,比如把双击 Ctrl+C 退出改成三击:

json
{
  "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,让你把这些偏好持久化到配置层。

本教程为社区中文学习整理,非官方发布。Claude Code 属于 Anthropic。