OpenCode 消息插队与中断操作指南

Posted by Forgus on 2026-03-23

概述

本文档说明如何在 OpenCode 中中断当前任务并发送新消息("插队"操作)。


中断当前任务

快捷键

操作 快捷键 说明
中断会话 Escape 中断当前正在执行的任务
取消响应(桌面端) ctrl+g 桌面应用中取消正在运行的响应

操作步骤

  1. Escape 键中断当前任务
  2. 在输入框中输入新消息
  3. Enter 提交新消息

相关操作快捷键

操作 快捷键 说明
撤销上次更改 <leader>u(默认 ctrl+x 然后 u 撤销 OpenCode 上次做的更改
重做更改 <leader>r 重新应用被撤销的更改
新建会话 <leader>n 创建全新会话
会话列表 <leader>l 查看所有会话

提示<leader> 默认为 ctrl+x,可在 tui.json 中自定义。


消息队列行为说明

当前行为

  • Escape 中断当前任务后,输入的新消息会作为下一条对话发送
  • 不支持在任务执行中"静默排队"新消息

待实现功能

GitHub Issue #16102 提出了一个特性请求:

inject queued messages into the next LLM call instead of interrupting the current task

该功能希望实现:

  • 不中断当前任务
  • 将新消息注入到下一次 LLM 调用中

状态:讨论中(open),尚未实现。


自定义快捷键

tui.json 中可自定义快捷键:

1
2
3
4
5
6
7
8
9
{
"$schema": "https://opencode.ai/tui.json",
"keybinds": {
"leader": "ctrl+x",
"session_interrupt": "escape",
"input_clear": "ctrl+c",
"input_submit": "return"
}
}

禁用某个快捷键:

1
2
3
4
5
{
"keybinds": {
"session_interrupt": "none"
}
}

参考链接