02. 日常对话与屏幕
读懂一屏
TUI 是一段可以滚动、折叠、聚焦的对话。先认清屏幕的三个部分,再去记更多按键。
焦点决定按键做什么。底部快捷键栏总会标出当前占用键盘的面板或卡片对应的按键。拿不准时往下看。
屏幕的三个部分
- 回看区 — 对话本身:你的提示、助手的回复、工具输出,以及思考过程。
- 提示框 — 回看区下方的输入框。
- 快捷键栏 — 一行提示条,会随焦点、正在跑的一轮,或选中的条目而变。
待办和后台任务的面板需要时才会滑进来。它们不是第四根常驻栏。
精简模式(/minimal 或 matcha --minimal)不一样:对话会打印进终端自己的回看。没有可交互的回看区面板,所以折叠、查找、跳转是另一套做法。
有用的一轮往往很长:一份计划、好几次工具调用、一处补丁。把噪音折起来,翻页看其余部分,输入框随时待命。
焦点
| 按键 | 上下文 | 效果 |
|---|---|---|
Tab | 焦点在提示框 | 把焦点移到回看区。 |
Tab 或 Space | 焦点在回看区 | 把焦点移到提示框。vim 模式下 i 也可以。 |
| 任意字母 | 回看区,简单模式(默认) | 把焦点移到提示框,并键入该字母。 |
Tab / Shift+Tab | 焦点在一张阻塞卡片上 | 在该卡片的行之间走动。焦点留在卡片里。 |
有三张阻塞卡片会在等你时拿走键盘:提问卡、权限询问,以及取消轮次面板。快捷键栏会标出当前活着的那一张。Esc 会把提问卡或权限卡停到一边,好让你滚动后面的上下文;Tab 再回来。取消轮次面板上的 Esc 意思是「让一切继续跑」。
在对话里移动
除非另有说明,这些按键在回看区拥有焦点时生效。
| 简单(默认) | Vim 模式(/vim-mode) | 效果 |
|---|---|---|
↑ / ↓ | k / j | 选中上一条 / 下一条。 |
Shift+← / Shift+→ | H / L | 跳到上一轮 / 下一轮(你的提示)。 |
K / J | 跳到上一条 / 下一条助手回复。 | |
g / G | 到回看区顶部 / 底部。 | |
PageUp / PageDown | 相同 | 按页滚动。从提示框也可以,不移动焦点、不改草稿。 |
Ctrl+U / Ctrl+D | 相同 | 半页(VS Code 系用 Shift+D 代替 Ctrl+D)。 |
Ctrl+K / Ctrl+J | 相同 | 滚动一行,不改选中项。 |
折叠与展开
长工具输出和思考过程会先收起来,直到你想看。
| 简单 | Vim | 效果 |
|---|---|---|
← | h | 折叠选中的条目。 |
→ | l | 展开选中的条目。 |
e | 切换选中条目的折叠。 | |
E | 全部展开 / 全部折叠。 | |
Ctrl+E | 相同 | 展开 / 折叠全部思考块。 |
Enter 或 Ctrl+F | 相同 | 在全屏查看器里打开选中的块。 |
精简模式里,已经提交的文字不能改写。/expand(或 Ctrl+E)会把上一个折叠或截断的块完整再打印到对话下方。该命令在全屏里是隐藏的;拒绝时会告诉你先按 Tab,再在该块上按 →。
/expand面板
| 按键 | 全屏 | 精简 |
|---|---|---|
Ctrl+T | 切换待办面板(助手正在执行的计划)。 | 钉住 / 显示待办面板(同一组合键)。 |
Ctrl+G | 切换任务面板(后台工作)。 | 用 $VISUAL / $EDITOR / vi 编辑当前草稿。不会发送。 |
鼠标
在完整 TUI 里,鼠标上报默认开启时:
- 点击回看区条目以选中它。
- 用滚轮移动回看区。
- 点击提示区域以聚焦。
该设置开启时,用 /toggle-mouse-reporting 关掉捕获,就可以改用终端自己的拖选。