官方教程中文版个性化
配置快捷键
用 tui.json 调整少数真正影响效率的 OpenCode 快捷键。
OpenCode 的快捷键可以通过 tui.json 自定义。新手不需要把完整快捷键表复制一遍,只改你每天会用、且和终端冲突的少数几个键。
先理解它解决什么问题
快捷键不是为了把所有功能都背下来,而是为了减少高频动作的打断感。新手真正会遇到的问题通常有三个:
- 不知道怎么快速打开会话列表、模型列表、代理列表。
- 输入多行提示词时,
Enter和Shift+Enter行为不符合预期。 - 终端、tmux、编辑器和 OpenCode 抢同一个快捷键。
因此配置思路应该是“只改高频和冲突”,不是复制一份完整快捷键表。
最小配置
推荐从这几个键开始:
{
"$schema": "https://opencode.ai/tui.json",
"keybinds": {
"leader": "ctrl+x",
"session_new": "<leader>n",
"session_list": "<leader>l",
"model_list": "<leader>m",
"agent_list": "<leader>a",
"session_compact": "<leader>c",
"input_newline": "shift+return,ctrl+return"
}
}这段配置覆盖的是高频入口:新会话、会话列表、模型选择、代理选择、压缩上下文和输入换行。
前导键
leader 是组合快捷键的前缀。默认用 ctrl+x,例如 <leader>n 就是先按 ctrl+x,再按 n。
建议保留一个前导键,而不是把所有动作都绑定成单键。原因很简单:终端、Shell、编辑器、tmux 都会占用快捷键,前导键可以降低冲突。
禁用冲突键
如果某个快捷键和你的终端或编辑器冲突,把它设为 "none":
{
"$schema": "https://opencode.ai/tui.json",
"keybinds": {
"session_compact": "none"
}
}不要为了“完整”复制官方全量 keybinds。完整配置会让你以后看不出自己到底改了什么。
输入区常用键
桌面版提示词输入框支持常见 Readline / Emacs 风格快捷键,这部分通常不用配置:
ctrl+a:移动到当前行开头。ctrl+e:移动到当前行末尾。ctrl+b/ctrl+f:向左 / 向右移动一个字符。alt+b/alt+f:向左 / 向右移动一个单词。ctrl+k:删除到行尾。ctrl+u:删除到行首。ctrl+w:删除前一个单词。
这些键和 Shell 输入习惯一致,新手先熟悉它们,比改一大份快捷键配置更有收益。
怎么判断配置有效
改完 tui.json 后,重启 OpenCode 或重新打开 TUI,再验证三件事:
<leader>n能创建新会话。<leader>m能打开模型选择。- 提示词输入区能按你预期换行和提交。
如果某个快捷键没反应,先检查是否被终端或 tmux 截获。OpenCode 收不到按键时,改 OpenCode 配置不会生效。
Shift+Enter
如果 Shift+Enter 不能换行,问题通常不在 OpenCode,而在终端没有发送带修饰键的 Enter 序列。
Windows Terminal 需要在 settings.json 里给 shift+enter 绑定 sendInput,输入值是 \u001b[13;2u。改完后重启终端或新开一个标签页再测试。
macOS 常见终端通常不需要额外配置;如果遇到冲突,优先检查终端自己的快捷键设置。
© Anomaly
最近更新: 2026年5月1日