Skip to content
FunCoding

Search

Search docs, Skills and MCP

快捷键与终端按键

配置 TUI 键位、leader、Windows 差异和 Shift+Enter,并区分桌面输入快捷键。

This page has not been translated into English yet. The original Chinese version is shown below.

TUI 快捷键在 tui.json 的 keybinds 配置,与内置默认合并。只写要修改的键即可,不需要复制完整默认表。

Leader 与键值格式

默认 leader 为 ctrl+x,例如先按它再按 n 开启会话。leader_timeout 默认 2000 毫秒。

一个值可以是单个快捷键、英文逗号分隔的多个快捷键或数组;高级对象支持 key、event、preventDefault、fallthrough。设置 "none" 或 false 可以禁用一个绑定。

{
  "$schema": "https://opencode.ai/tui.json",
  "keybinds": {
    "messages_copy": ["<leader>y", "ctrl+shift+c"],
    "input_paste": {
      "key": "ctrl+v",
      "preventDefault": false
    }
  }
}

常用 TUI 默认键

配置键默认绑定
command_listctrl+p
editor_open<leader>e
theme_list<leader>t
sidebar_toggle<leader>b
status_view<leader>s
session_new / session_list<leader>n / <leader>l
session_export / session_timeline<leader>x / <leader>g
session_interrupt / session_compactescape / <leader>c
model_list<leader>m
model_cycle_recent / reversef2 / shift+f2
agent_list<leader>a
agent_cycle / reversetab / shift+tab
variant_cyclectrl+t
messages_copy<leader>y
messages_undo / messages_redo<leader>u / <leader>r
input_submitreturn
input_newlineshift+return,ctrl+return,alt+return,ctrl+j

表中 reverse 对应完整键 model_cycle_recent_reverse 和 agent_cycle_reverse。Agents 概念页使用 switch_agent 这一称呼,实际 Keybinds 表列出 agent_cycle;配置键以这里的专门表为准。

子会话使用 <leader>down、right、left、up,详见子会话导航。按键可能在不同界面上下文承担不同动作,不能只按键名推断当前会执行什么。

输入与浏览

常见输入操作包括 ctrl+a/ctrl+e 到行首/行尾,ctrl+b/ctrl+f 左右移动字符,ctrl+k/ctrl+u 删除到行尾/行首,ctrl+w 删除前一个词。

消息浏览可用 pageup/pagedown、ctrl+alt+u/ctrl+alt+d 半页滚动,ctrl+g 或 home 到开头,ctrl+alt+g 或 end 到末尾。完整默认表还有选择、历史、弹窗和 which-key 导航,应按实际面板查询,而不是将消息键位套到输入编辑中。

Windows 差异

原生 Windows 未显式配置时,input_undo 默认增加 ctrl+z,完整值为 ctrl+z,ctrl+-,super+z;terminal_suspend 强制 none,因为原生 Windows 终端不支持 POSIX suspend。

某些终端不会发送 Shift+Enter 修饰键。Windows Terminal 可在自己的 settings.json 中为根 actions 和 keybindings 添加以下片段(与现有数组合并,不覆盖其他设置):

{
  "actions": [
    {
      "command": {
        "action": "sendInput",
        "input": "\u001b[13;2u"
      },
      "id": "User.sendInput.ShiftEnterCustom"
    }
  ],
  "keybindings": [
    {
      "keys": "shift+enter",
      "id": "User.sendInput.ShiftEnterCustom"
    }
  ]
}

保存后重启终端或打开新标签。它是 Windows Terminal 配置,不应放入 tui.json。

桌面输入不同

桌面应用支持内置 Readline/Emacs 风格输入快捷键,官方说明目前不能通过 opencode.json 配置。比如桌面 ctrl+t 交换字符,而 TUI 的同键用于 variants;桌面 ctrl+g 取消弹出层或中止响应。跨入口使用时先确认焦点和所在客户端。