Appearance
OpenCode TUI 的所有快捷键都可以通过 tui.json 配置文件自定义。本文提供完整的键位参考表、Leader 键说明,以及在 Windows Terminal 等特殊终端中配置 Shift+Enter 的方法。
OpenCode 使用 tui.json 配置文件自定义快捷键。
json
{
"$schema": "https://opencode.ai/tui.json",
"keybinds": {
"leader": "ctrl+x",
"session_new": "<leader>n",
"session_list": "<leader>l"
}
}Leader 键
OpenCode 使用 leader 键避免与终端快捷键冲突。
默认 Leader 键为 ctrl+x。大多数操作需要先按 Leader 键,再按功能键。例如新建会话:先按 ctrl+x,再按 n。
快捷键中用 <leader> 表示 Leader 键前缀。
完整键位参考
应用与界面
| 操作 | 默认快捷键 |
|---|---|
| 退出 | ctrl+c,ctrl+d,<leader>q |
| 打开编辑器 | <leader>e |
| 主题列表 | <leader>t |
| 侧边栏开关 | <leader>b |
| 状态视图 | <leader>s |
会话管理
| 操作 | 默认快捷键 |
|---|---|
| 导出会话 | <leader>x |
| 新建会话 | <leader>n |
| 会话列表 | <leader>l |
| 会话时间线 | <leader>g |
| 中断会话 | escape |
| 压缩会话 | <leader>c |
| 子代理会话导航 | <leader>down, right, left, up |
消息浏览
| 操作 | 默认快捷键 |
|---|---|
| 向上翻页 | pageup,ctrl+alt+b |
| 向下翻页 | pagedown,ctrl+alt+f |
| 向上滚行 | ctrl+alt+y |
| 向下滚行 | ctrl+alt+e |
| 向上半页 | ctrl+alt+u |
| 向下半页 | ctrl+alt+d |
| 回到顶部 | ctrl+g,home |
| 跳到底部 | ctrl+alt+g,end |
| 复制消息 | <leader>y |
| 撤销 | <leader>u |
| 重做 | <leader>r |
| 切换折叠 | <leader>h |
模型与 Agent
| 操作 | 默认快捷键 |
|---|---|
| 模型列表 | <leader>m |
| 切换最近模型 | f2 |
| 反向切换最近模型 | shift+f2 |
| 命令列表 | ctrl+p |
| Agent 列表 | <leader>a |
| 切换下一个 Agent | tab |
| 切换上一个 Agent | shift+tab |
输入框编辑
| 操作 | 默认快捷键 |
|---|---|
| 提交消息 | return |
| 换行 | shift+return,ctrl+return,alt+return,ctrl+j |
| 清空输入 | ctrl+c |
| 粘贴 | ctrl+v |
| 移到行首 | ctrl+a |
| 移到行尾 | ctrl+e |
| 删除到行尾 | ctrl+k |
| 删除到行首 | ctrl+u |
| 删除单词(向后) | ctrl+w,ctrl+backspace,alt+backspace |
| 删除单词(向前) | alt+d,alt+delete,ctrl+delete |
| 撤销输入 | ctrl+-,super+z |
| 重做输入 | ctrl+.,super+shift+z |
| 向前移动单词 | alt+f,alt+right,ctrl+right |
| 向后移动单词 | alt+b,alt+left,ctrl+left |
禁用快捷键
将键值设为 "none" 即可禁用:
json
{
"$schema": "https://opencode.ai/tui.json",
"keybinds": {
"session_compact": "none"
}
}桌面应用快捷键
OpenCode 桌面版输入框内置 Readline/Emacs 风格快捷键,目前不支持通过 opencode.json 配置:
| 快捷键 | 动作 |
|---|---|
ctrl+a | 移到当前行行首 |
ctrl+e | 移到当前行行尾 |
ctrl+b | 向后移动一个字符 |
ctrl+f | 向前移动一个字符 |
alt+b | 向后移动一个单词 |
alt+f | 向前移动一个单词 |
ctrl+d | 删除光标下的字符 |
ctrl+k | 删除到行尾 |
ctrl+u | 删除到行首 |
ctrl+w | 删除上一个单词 |
alt+d | 删除下一个单词 |
ctrl+g | 取消弹出框 / 中止运行中的响应 |
配置 Shift+Enter(Windows Terminal)
某些终端默认不发送修饰键 + Enter 的组合,需要手动配置。
打开 Windows Terminal 的 settings.json(路径:%LOCALAPPDATA%\Packages\Microsoft.WindowsTerminal_8wekyb3d8bbwe\LocalState\settings.json)。
在根级 actions 数组中添加:
json
{
"command": {
"action": "sendInput",
"input": "[13;2u"
},
"id": "User.sendInput.ShiftEnterCustom"
}在根级 keybindings 数组中添加:
json
{
"keys": "shift+enter",
"id": "User.sendInput.ShiftEnterCustom"
}保存后重启 Windows Terminal 或打开新标签页生效。
常见问题
Q: 我想把 Leader 键从 ctrl+x 改成其他键,会影响哪些快捷键?
A: 所有使用 <leader> 前缀的快捷键都会跟着变。修改 "leader" 字段即可,无需逐一修改引用 <leader> 的条目。
Q: 如何让 OpenCode 的快捷键不与 tmux 冲突?
A: 更改 leader 键为 tmux 不使用的组合,或者将冲突的操作设为 "none" 禁用,再重新绑定到其他键。
Q: tui.json 文件放在哪里?
A: 默认位置是 ~/.config/opencode/tui.json(全局配置),或者项目目录下的 .opencode/tui.json(项目级配置)。