HARNESS / CLAUDE CODE
Claude Code keybindings:把 Ctrl+X 变成 Agent Leader Key
把 Claude Code 的 keybindings 组织成一套 Agent/TUI 控制层,重点覆盖 queueSubmit、diff、subagents、history 与 tmux。
Claude Code 的 ~/.claude/keybindings.json 不只是“改快捷键”。
对 Agent-heavy 的工作流,更有价值的做法是:把 Ctrl+X 当成一层 Agent control plane,把 diff、排队消息、后台任务、subagent 控制等高频动作收进同一套 chord。
官方文档:https://code.claude.com/docs/en/keybindings
最值得记的默认快捷键
左右滑动查看完整表格 ↔
| 快捷键 | Action | 用途 |
|---|---|---|
Ctrl+X Enter |
chat:queueSubmit |
排队发消息;Claude 正在工作时不会 interrupt 当前 turn |
Ctrl+X Ctrl+K |
chat:killAgents |
停掉当前 session 的所有后台 subagents |
Ctrl+X Ctrl+B |
task:background |
把当前 task 放后台,避开 tmux 的 Ctrl+B prefix |
Ctrl+G |
chat:externalEditor |
用外部编辑器写长 prompt / spec |
Ctrl+S |
chat:stash |
暂存当前 prompt |
Ctrl+T |
app:toggleTodos |
看 Claude 当前 todo |
Ctrl+O |
app:toggleTranscript |
打开 verbose transcript |
Meta+P |
chat:modelPicker |
Model picker |
Meta+O |
chat:fastMode |
Fast mode |
Meta+T |
chat:thinkingToggle |
Extended thinking |
其中最值得记的是:
Ctrl+X Enter
普通 Enter 在 Claude 工作时可能影响当前 turn;queueSubmit 明确表示“这条等前面干完再执行”。对于一边看 Agent 干活、一边继续补要求的工作流,非常自然。
chat:queueSubmit需要 Claude Code v2.1.247+。
把 Ctrl+X 变成 Agent Leader Key
Claude Code 支持 chord:
ctrl+x d
ctrl+x n
ctrl+x p
每个按键之间最长可以隔 3 秒。
可以把它组织成:
Ctrl+X D diff panel
Ctrl+X N diff noise filter
Ctrl+X P pre-session diff
Ctrl+X T todos
Ctrl+X O transcript
Ctrl+X Enter queue prompt
Ctrl+X Ctrl+K kill agents
Ctrl+X Ctrl+B background task
Ctrl+X Ctrl+E external editor
这样 Ctrl+X 基本就变成了 Claude Code 的 Agent/TUI command layer。
Diff panel 是最值得补绑定的一组
Fullscreen renderer 的 /diff panel 现在支持:
app:toggleReplTab:打开/关闭 diff panel。app:cycleDiffBase:在session -> uncommitted -> branch之间切换比较基准。app:toggleDiffNoiseFilter:隐藏/显示 tests 和 generated files。app:toggleDiffPreSession:展开/折叠 session 开始之前已有的修改。
其中后三类操作很适合 coding agent:可以快速区分“这次 Agent 真改了什么”和 repo 原来就脏的内容。
Diff panel 需要 Claude Code v2.1.260+。
可以加这几个自定义 binding:
{
"$schema": "https://www.schemastore.org/claude-code-keybindings.json",
"$docs": "https://code.claude.com/docs/en/keybindings",
"bindings": [
{
"context": "Global",
"bindings": {
"ctrl+x d": "app:toggleReplTab",
"ctrl+x n": "app:toggleDiffNoiseFilter",
"ctrl+x p": "app:toggleDiffPreSession",
"ctrl+x t": "app:toggleTodos",
"ctrl+x o": "app:toggleTranscript"
}
}
]
}
配置文件修改后会自动 reload,不需要重启 Claude Code。
多 Agent:claude agents 还有单独的 Context
Claude Code v2.1.257+ 有 Agents context。
默认:
Ctrl+S -> agents:switchView
Ctrl+T -> agents:togglePin
用途:
switchView:按 state / directory 切换 session grouping。togglePin:pin/unpin 一个 Agent session。
有意思的是 Context 会覆盖同键的 Global/Chat binding。
例如 Agent view 里按 Ctrl+S,执行的是 agents:switchView,而不是普通聊天里的 chat:stash。
这意味着 keybindings 可以按 UI state 做不同语义,而不是只能维护一张全局快捷键表。
Prompt history 也能当跨项目 recall
Fullscreen renderer:
Ctrl+R history search
Ctrl+S session -> project -> everywhere
所以 Claude Code 的历史搜索实际上可以当一个轻量的 cross-project prompt recall。
如果之前写过一个很好用的 debug / review / planning prompt,不一定需要自己再做一套 shell history。
tmux 用户特别注意
Claude Code 官方专门考虑了 terminal multiplexer:
Ctrl+B会撞 tmux prefix,所以 background task 同时提供Ctrl+X Ctrl+B。Ctrl+A常和 GNU screen 冲突。Ctrl+Z是 Unix SIGTSTP。
另外下面这些键不要费劲重绑:
Ctrl+C
Ctrl+D
Ctrl+M
Ctrl+[
Ctrl+I
Ctrl+H
CapsLock
它们属于 hardcoded / terminal-level reserved shortcuts。
最小配置
如果只想加最值钱的东西,先加:
Ctrl+X D diff panel
Ctrl+X N diff noise
Ctrl+X P pre-session diff
然后继续使用官方已经给好的:
Ctrl+X Enter queue message
Ctrl+X Ctrl+K kill agents
Ctrl+X Ctrl+B background task
Ctrl+G external editor
Ctrl+T todos
Ctrl+O transcript
核心思路不是“多记几个快捷键”,而是把 Claude Code 从聊天 CLI 变成一个键盘驱动的 Agent console。
Reference
- Claude Code — Customize keyboard shortcuts: https://code.claude.com/docs/en/keybindings
Comments