输入编辑器
输入编辑器是终端底部的圆角框组件:> 提示符、多行编辑、历史与 kill-ring、undo——这些文本编辑能力来自底层 pi-tui Editor;Mayfly 在其上叠加语境与增强。
斜杠命令语境
输入以 / 开头时编辑框变 primary 蓝框,并进入命令语境:
- 模糊补全 —— 查询按空白分 token、每个 token 做 subsequence 匹配、按得分排序;下拉里每条是
hint — description两段描述,Enter 接受预选项并提交。 - 空匹配提示 —— 模糊匹配落空时 hint 行提示
no matching command: /…(命令发现由补全下拉承担,无匹配时下拉自行关闭,这行提示是唯一信号)。 - 参数幽灵提示 ——
/command后至多一个空格时显示参数 hint(如/sessions [<session-id>]);未输分隔符时前置空格。
全部命令见斜杠命令参考。
! bash 模式
buffer 恰为 ! 时切入 bash 模式(! 不进 buffer),三重提示齐发:! 提示符、! shell mode 边框标签、shellMode 紫框色。提交后自动退回 prompt 模式。
命令由 Mayfly 自己的执行器运行,输出回显为 shell 卡(消毒后按流截断:各 200 行 / 64KB),失败保留 exit code N 行——刻意不进会话记录,模型看不到。prompt 与 bash 提交共用同一份历史(Up 召回不分模式)。
@ 文件补全
@ 触发文件路径补全:fd 优先(模糊打分后取前 20 条),fd 缺失时文件系统扫描回退(扫描上限 2000 条、建议上限 50 条)。补全范围是文件路径;命令参数补全暂缓。
# 技能调用
# 触发技能名补全(与斜杠补全同款模糊匹配,按来源层分组的 /skills 面板是完整清单)。提交时 #name 被重写为 /name 走 harness 的技能手势路径——会话流回显的是重写后的 /name,技能注入按注入上下文规则零行呈现。
大粘贴折叠
粘贴超过 10 行或 1000 字符的文本时,编辑器折叠为 [paste #N +M lines] 标记(全文存于编辑器、提交前自动展开,模型收到完整内容);会话流侧同样折叠为 3 行预览 + 提示行,Ctrl-O 展开同权。历史召回(Up)取展开全文。
Ctrl-G 外部编辑器
Ctrl-G 把当前草稿交给外部编辑器全屏编辑(mayfly.editorCommand 设置优先,其后 $VISUAL、再 $EDITOR):Mayfly 挂起渲染、让出终端给子进程,编辑器正常退出后恢复并回读全文(粘贴标记往返存活)。以 :cq 退出则视为取消,草稿原样保留。
Ctrl-V 粘贴图片
Ctrl-V 把剪贴板图片存入附件库,并在光标处插入 [image #N] 标记;提交时标记拆分为图片内容块进入消息。标记跨主题热切换存活。
依赖与限制:Linux 依次探测 wl-paste、xclip(3 秒超时);Windows 上单次 PowerShell 调用读取剪贴板图片或复制的文件(10 秒预算);macOS 上 osascript 读取剪贴板类目并把 TIFF-only 的复制经 sips 转换(5 秒预算)。单图 10MB、每条消息 8 张 / 30MB / 16M 像素;模型需具备图片输入能力(详见 FAQ)。
复制的文件在三平台都按原顺序整批粘贴:Ubuntu 文件管理器的 text/uri-list、Windows 资源管理器的 FileDropList、macOS 的 Finder 复制。只接受本地普通 PNG/JPEG/WebP/GIF 文件;远程 URI、目录和符号链接会显示拒绝原因。
编辑器语境键位
编辑器焦点下有一组语境键链(详见键位参考):会话流进行中(所选 Agent 正在运行;仅有子 Agent 在运行不算)时 Escape 中断这条流——buffer 为空且刚提交的消息可安全撤回时优先撤回(恢复进编辑器),草稿始终不动;Ctrl-C 有草稿时只清空草稿、流继续,空 buffer 时中断这条流。两者都空闲时清空草稿,Ctrl-C 在空 buffer 上进入 1 秒内双击退出。中断按下后活动行立即切换为静态 ■ 正在中断...,直到当前 step/工具排空、turn 真正结束(原生 drain 语义:已启动的工具调用会跑完以保证 replay 有效)。中断只停止所选 Agent 的当前 turn:子 Agent、后台任务与 goal 不受影响,排队和 steer 的消息保留并作为下一个 turn 继续发送。Ctrl-Enter 把非空草稿 steer 注入当前 turn。↑/↓ 始终归编辑器历史(排队消息是会话流中的行:Alt+↑ 聚焦后按 e 编辑、s 立即发送、d 取消),翻阅时通知行显示 ↑ 历史 2/4,PageUp/PageDown 滚动当前会话流。每个旁支会话都保留这个编辑器:live BTW/subagent 使用完整键链;只读会话中提交的草稿留在编辑器并给出提示;可恢复(cold continuable)会话中,发送会唤醒子 Agent:Enter 把草稿排队到它的下一个 turn,Ctrl-Enter 转向它。斜杠命令始终可用。F7 返回上一个会话,F8 关闭当前显示的旁支会话。
草稿存活
未提交的草稿、输入模式(含 bash 三件套)与提示历史镜像进 draft stash——/theme 热切换重建编辑器 fiber 后原样恢复,/theme light 这类刚提交的命令也不会从 Up 历史里消失。