Skip to content

第 2 章 · TUI 基础操作与快捷键

Prompt 决定「说什么」,本章解决「怎么操作」。键盘熟练度不是炫技,它直接决定你与 AI 的协作节奏:手不离键盘,思路就不会被找按钮打断。

本章包含 5 个知识点:

  1. 启动、界面布局与核心交互模型
  2. 输入、换行、发送与任务中的引导 / 排队
  3. Leader 键(Ctrl+X)与命令面板(Ctrl+P)
  4. 斜杠命令、Shell 模式与外部编辑器
  5. 标签页与会话管理

知识点 1:启动、界面布局与核心交互模型

① 定位

这是操作层的第一个知识点,解决三个问题:从哪里进入、眼睛该看哪里、手该放在哪里。 很多新手的慌乱并非来自任务难,而是不熟悉界面分区,把正常的工作状态误当成「卡死了」。

② 是什么(What)

在项目目录下运行 opencode 进入 TUI。界面从上到下可分为三个核心区域:

区域内容你需要关注什么
会话区(主区域)你和 AI 的对话、工具调用过程、文件改动AI 当前在做什么、卡在哪一步
输入区(底部 Composer)多行文本输入框编辑你的下一条指令
状态栏 / 页脚当前模型、Agent、模式提示、快捷入口当前用的是哪个模型和 Agent

默认还会开启标签页栏(每个打开的会话一个标签)和可切换的侧边栏(会话列表)。

需要认识几个界面「信号」,它们是判断状态的关键:

  • AI 正在工作时,会话区会持续出现工具调用(读文件、跑命令等)的实时记录;
  • 需要授权时,会弹出权限提示框——这不是错误,是正常的风险闸门;
  • 输入框为空、光标停在底部,才表示「轮到你说话了」。

TUI 是键盘驱动的界面,几乎所有操作都可以不碰鼠标完成。 这不是限制,而是效率设计:终端用户的双手本就放在键盘上。

③ 怎么做(How)

  1. 进入项目目录:cd ~/code/my-project
  2. 启动:opencode
  3. 花 30 秒观察界面:找到会话区、输入框、状态栏,看清当前模型名
  4. 第一条消息永远可以是只读侦察(第 0 章已示范)

④ 为什么这么做(Why)

  • 界面认知是操作速度的前提。 大脑只有先知道「信息出现在哪个固定位置」,才能不经思考地扫一眼就获取状态。不熟悉分区时,你每次都要满屏搜索,认知负荷全浪费在找东西上。
  • 误判状态是新手最大的慌乱源。 AI 执行长任务时屏幕滚动很快,看起来像「失控」,其实是它在按步骤工作;权限弹窗看起来像「报错」,其实是在等你拍板。读懂信号,才不会在正常流程里频繁打断它。
  • 键盘驱动遵循「手的路径最短」原则。 鼠标操作要求手离开键盘、定位、点击再回来,每次几秒;高频协作中一天可能切换上百次,累积损失可观。快捷键把动作压缩成一两次按键。
  • 先观察后操作是通用安全习惯。 进任何新环境先看清楚当前模型、Agent、所在目录,再下指令,能避免「在错误的会话里说错话」这类低级事故。

⑤ 这样做的好处

  • 心里有地图:界面任何变化都知道意味着什么,不慌。
  • 状态判断准确:能分清「工作中 / 待授权 / 等你输入」三种状态。
  • 操作速度快:双手不离键盘,思路与操作同步。
  • 开局稳妥:用只读侦察建立共同理解,再派具体任务。
  • 为后续快捷键学习铺路:区域概念清楚后,后面的组合键一学就会用。

⑥ 不这么做的问题 / 坏处

  • 找不到信息 → 不知道当前用的哪个模型,答得差时无从判断原因。
  • 误判工作状态 → AI 还在跑就重复发指令,或把授权框当错误强行退出。
  • 满屏找按钮 → 用图形界面的习惯操作 TUI,处处觉得「反人类」。
  • 不观察就下指令 → 在错误目录、错误 Agent 下操作,产出与预期完全不同。

⑦ 举一反三:三个例子

例 1(基础):第一次看到工具调用滚动

📌 场景:你让 AI「介绍这个项目」,屏幕开始快速滚动,出现一堆读文件的记录。

正确反应:保持不动,让它跑完。滚动记录说明它正在按步骤读取文件,这正是 Agent 的工作方式。

🔍 讲解:聊天机器人只输出一段话,Agent 的回答是「一串动作 + 最终总结」。看不懂这一点,新手最常见的错误就是在它工作时疯狂按键或强制退出,反而把正常流程打断。记住:有工具调用记录在滚动 = 它活着且在干活。

例 2(进阶):先看状态栏再派任务

📌 场景:你要让 AI 做一个复杂的架构分析,但感觉它最近回答「变笨了」。

做法:发指令前先看状态栏——确认当前模型是不是你想要的那个(复杂任务需要强模型),确认 Agent 是否正确。

🔍 讲解:模型和 Agent 是可以切换的(知识点 3、第 6 章),也可能被你之前无意中切换过。状态栏就是「起飞前的仪表盘」。不看仪表盘就起飞,遇到「回答质量突变」时你连变量都排查不到。

例 3(挑战):界面看起来「卡住」时的判断

📌 场景:AI 正在执行一个耗时命令(如安装依赖、跑构建),屏幕十几秒没有新内容。

判断流程

  1. 是真卡死,还是命令本身耗时?——回想你手动跑同样的命令要多久;
  2. 是否在等待授权?——检查有没有未处理的权限弹窗;
  3. 需要干预时,按 Esc 可以中断当前会话(session.interrupt)。

🔍 讲解:终端程序「屏幕不动」不等于「死机」——一个 npm install 本来就可能安静跑很久。高手先区分耗时与卡死,再决定是否中断;新手一看到静止就强杀进程,可能把装了一半的依赖、写了一半的文件留在损坏状态。Esc 中断是安全、干净的停止方式,应优先于直接关闭终端。


⑧ 练习题 ×2

练习 1(巩固型)

📝 题目:不看教程,凭记忆默写出 TUI 的三个核心区域,以及每个区域你应该关注的信息。

💡 思路提示:从上到下想——对话在哪、你打字的地方在哪、模型信息在哪。

参考答案

text
1. 会话区(主区域):对话与工具调用过程,关注 AI 当前在做什么;
2. 输入区(底部):编辑下一条指令;
3. 状态栏 / 页脚:当前模型、Agent 与模式提示,关注用的是哪个模型。

🔍 讲解:能默写出来,说明界面地图已经进入记忆。之后每次使用它都会被反复强化,最终变成扫一眼即知全局的直觉。

练习 2(迁移型)

📝 题目:迁移到你熟悉的任何软件(浏览器、IDE、游戏):「先熟悉界面分区再高效使用」这个规律是如何体现的?

💡 思路提示:想想你第一次用某软件时找不着某功能,和熟练后「眼睛不用找」的对比。

参考答案(示例)

text
以 IDE 为例:新手不知道文件树、编辑器、终端、输出面板各在哪,
每次操作都要四处寻找;熟练后形成固定的视线路径——报错看下方 Problems,
文件看左侧树,运行结果看终端,手眼配合不再需要思考。
本质相同:界面分区一旦内化为空间记忆,认知资源就全部释放给真正的任务。

知识点 2:输入、换行、发送与任务中的引导 / 排队

① 定位

界面认识后,第一个高频动作就是「打字并发送」。本知识点解决四个最常用的输入操作:怎么发出去、怎么换行、AI 干活时想补充怎么办、想让它待会再做怎么办。 这四个动作覆盖了你每天 90% 的键盘交互。

② 是什么(What)

操作默认按键说明
发送Enterreturn提交当前输入
换行Shift+Enter / Ctrl+Enter / Ctrl+J在输入框内插入新行而不发送
引导(Steer)AI 工作中按 Enter向正在进行的任务追加指示
排队(Queue)AI 工作中按 Alt+Enter把消息存为队列,等当前任务结束后再执行

两个最容易混淆的点要分清:

  1. 换行 ≠ 发送。长 Prompt 需要分点、分段时,必须用换行组合键;直接按 Enter 会立刻发出半成品。
  2. 引导 ≠ 排队。引导是「现在就插话影响当前任务」;排队是「等它做完再说」。一个立即介入,一个延后处理。

③ 怎么做(How)

  • 写多行 Prompt:输入第一行 → Shift+Enter → 继续输入下一行 → 全部写完后 Enter 发送。
  • AI 跑歪了要立刻纠正:直接在输入框打字,按 Enter,这就是引导,它会收到你的新指示并调整方向。
  • 有个后续任务不想忘记、但不想打断它:打字后按 Alt+Enter 排队;队列提示会显示,当前任务完成后自动处理。
  • 管理队列Ctrl+X 后按 Q<leader>q)可以查看和管理已排队的消息;在队列列表中删除某项用 Ctrl+D

④ 为什么这么做(Why)

  • Enter 发送是终端界的肌肉记忆。 数十年命令行习惯让 Enter = 执行成为默认共识;TUI 沿用它,学习成本最低。多行需求则用修饰键组合区分,两者各司其职。
  • 分点的 Prompt 质量更高,所以换行必须顺畅。 第 1 章反复强调复杂任务要编号、分段——如果换行操作别扭,人就会退回写一大段模糊的话,工具形态直接影响表达质量。
  • 引导(Steering)是 Agent 协作的核心机制。 Agent 任务可能执行几分钟,人不能当甩手掌柜;引导让你在不丢失已有进度的前提下实时纠偏,相当于开车时微调方向盘,而不是熄火重来。
  • 排队解决「打断成本」与「遗忘风险」的矛盾。 等 AI 工作时,你脑子里冒出的后续想法如果立刻说,会打断当前任务;如果硬记,又容易忘。排队让想法安全地等在原地。
  • 中断、引导、排队分别对应三种不同意图。 叫停 = Esc,微调 = Enter,延后 = Alt+Enter,概念清晰才不会用错工具。

⑤ 这样做的好处

  • 表达从容:长 Prompt 可以精心排版再发出,不会误发。
  • 实时可控:发现跑偏立刻引导,不必等它错完再返工。
  • 不丢想法:后续任务排队等待,脑子里可以清空。
  • 协作节奏顺畅:当前任务不被频繁打断,完成后无缝衔接下一个。
  • 减少废操作:意图与按键对应,不会「想排队却打断了它」。

⑥ 不这么做的问题 / 坏处

  • 不会换行 → Prompt 挤成一段,编号列表全毁,AI 抓不住结构;或频繁误发半成品,对话里充满垃圾消息。
  • 该引导时硬等 → 眼睁睁看它按错误方向做十分钟,错完再整体返工,浪费双份时间。
  • 该排队时直接插话 → 频繁打断当前任务,AI 注意力反复切换,哪件都做不深。
  • 靠脑子记后续任务 → 十有八九忘记,好想法白白流失。

⑦ 举一反三:三个例子

例 1(基础):排版一条编号任务

📌 场景:你要发给 AI 一条含 4 个要点的任务。

操作:输入「请处理以下问题:」→ Shift+Enter → 输入「1. ……」→ Shift+Enter → 依次输完 4 条 → Enter 发送。

🔍 讲解:排版整齐的编号列表让模型能逐条响应、逐条核对。换行键用熟之后,这只是几秒钟的事;但很多人因为不习惯组合键,长期把多要点挤成一段,AI 漏答其中一两条也难以发现。

例 2(进阶):实时引导纠正跑偏

📌 场景:AI 正在重构,但你发现它开始改动一个你明确说过不要碰的配置文件。

做法:立刻在输入框输入:「停下,不要动那个配置文件,回到 src 下的业务代码继续。」按 Enter 引导。

🔍 讲解:这是引导(Steering)最典型的使用时机——错误正在发生、每多一秒都在扩大。此时不需要等、不需要中断重来,一条引导即可把它拉回正轨。如果等它全部做完再指出,配置文件可能已经被改并产生连锁影响。

例 3(挑战):边看它工作边规划后续,用队列接住想法

📌 场景:AI 在实现功能 A,你看着它的过程,连续想到:「做完 A 要补测试」「还要更新文档」「另外那个老 bug 也顺便提一下」。

做法:前两件与当前任务相关的事,按 Alt+Enter 逐条排队;最后那个不相关的老 bug 不要排队污染当前会话,记到别处、另开会话处理。

🔍 讲解:高手不仅会用队列,还知道队列里该放什么。排队的消息会紧接当前任务执行,天然继承当前上下文——放相关后续任务很合适,放无关任务则会把上下文搅乱。队列不是垃圾桶,是「同语境后续任务」的暂存区。


⑧ 练习题 ×2

练习 1(巩固型)

📝 题目:填空:发送用 ____;输入框内换行用 ____;AI 工作中立即纠偏用 ____;让消息等当前任务结束后再执行用 ____;彻底中断用 ____。

💡 思路提示:回到本知识点的按键表。

参考答案

text
发送:Enter;换行:Shift+Enter(或 Ctrl+Enter / Ctrl+J);
立即纠偏(引导):Enter;延后执行(排队):Alt+Enter;
彻底中断:Esc。

🔍 讲解:这五个键是 TUI 操作的「母键」,建议在真实使用中刻意练上十几次,形成肌肉记忆后终身受用。

练习 2(迁移型)

📝 题目:迁移到日常沟通:「立即插话」和「先记下来待会说」分别适用于什么场合?请各举一个工作或生活中的例子。

💡 思路提示:判断标准是「信息是否紧急、插话是否会破坏当前流程」。

参考答案(示例)

text
立即插话:会议中对方正要基于错误数据做决定——必须马上纠正,
晚了决定就成形了(对应「引导」)。
先记下来待会说:同事正在专注汇报,你想到一个与当前议题无关、
但以后要讨论的点——先记下,会后再提,避免打断节奏(对应「排队」)。
共性原则:紧急且影响当下 → 立即介入;不紧急或无关 → 延后处理。

知识点 3:Leader 键(Ctrl+X)与命令面板(Ctrl+P)

① 定位

单键数量有限,复杂操作需要「组合键」。本知识点讲 TUI 的两大操作中枢:Leader 键(快捷键组合的前缀)和命令面板(所有操作的可搜索清单)。记住这两个入口,你就不需要死记每个功能的快捷键——忘了随时能查。

② 是什么(What)

Leader 键(前缀键) 默认是 Ctrl+X。它本身不执行动作,而是告诉 TUI:「我接下来要按的键是一个组合命令的第二下。」例如:

组合动作
Ctrl+XM打开模型列表
Ctrl+XA打开 Agent 列表
Ctrl+XN新建会话
Ctrl+XQ退出程序 / 管理队列(视界面状态)

按下 Leader 键后,界面通常会弹出按键提示(Which-Key 风格),列出第二下可以按什么——所以你不需要全背下来。

命令面板 默认 Ctrl+P,列出当前界面下所有可执行操作,可以输入关键词模糊搜索、回车执行。它是快捷键的「安全网」:记不住组合键时,搜一下即可。

③ 怎么做(How)

  1. 执行组合操作:先按 Ctrl+X,看清弹出的提示,再按对应字母。
  2. 忘记快捷键:按 Ctrl+P 打开命令面板,输入动作关键词(如 model、session、theme),选中后回车。
  3. 自定义 Leader 键:在 ~/.config/opencode/cli.json 中设置 keybinds.leader,如改为 ctrl+space;还可用 leader.timeout 设置等待第二键的超时毫秒数。

④ 为什么这么做(Why)

  • 组合前缀解决「键位不够」问题。 键盘上随手可按的单键只有几十个,而 TUI 有上百个操作。Leader 前缀用「先按前缀、再按命令键」的方式,让有限按键承载大量操作,且组合键通常好记(M = Model、N = New、A = Agent)。
  • 提示面板让「记忆负担」外置。 按下 Leader 后直接看到可选项,你只需「识别」而非「回忆」——这符合认知科学中识别比回忆省力的规律,学习曲线因此平缓。
  • 命令面板是终极兜底。 任何功能只要存在,就一定能在面板里搜到。它保证你永远不会因为忘记快捷键而无法完成操作,这对新手尤其重要。
  • 可定制性尊重个人手型与习惯。 不同人用不同键盘、终端(某些组合键会被终端或系统占用),自定义 Leader 键可以避开冲突,让快捷键为你服务而不是相反。

⑤ 这样做的好处

  • 操作不靠死记:Leader 提示 + 命令面板,随时可查。
  • 上手快:记住 Ctrl+XCtrl+P 两个入口,就能找到几乎所有功能。
  • 扩展性强:功能再多也不乱,组合体系可以无限增长。
  • 个性化适配:键位冲突、手型偏好都能解决。
  • 逐步精进:初期靠面板搜索,高频动作自然记住后用组合键加速。

⑥ 不这么做的问题 / 坏处

  • 硬背所有快捷键 → 记不住、易混淆,挫败感强,很多人因此放弃 TUI。
  • 不知道命令面板 → 记不住某功能就以为「不支持」,能力被记忆卡死。
  • 不会用前缀 → 两个键分开快速按变成「先按出奇怪状态再乱按」,以为键盘失灵。
  • Leader 键与终端冲突不处理 → 某些终端里 Ctrl+X 可能被占用,不自定义就会时灵时不灵。

⑦ 举一反三:三个例子

例 1(基础):切换模型

📌 场景:任务变难,你想从当前模型切到更强的模型。

操作Ctrl+X → 看提示 → 按 M → 在模型列表中选择。也可直接 Ctrl+P 搜「model」。

🔍 讲解:M = Model 是最好记的组合之一。如果一时想不起,命令面板永远兜底——两个入口解决同一个需求,这就是双保险设计。

例 2(进阶):发现一个从不知道的功能

📌 场景:你打开命令面板随便浏览,发现 TUI 还支持会话时间线(Timeline)、主题切换等你没读过文档的功能。

做法:在面板中选中该操作直接试用;或记住其组合键(如时间线是 Ctrl+XG)。

🔍 讲解:命令面板不仅是「查找已知功能」的地方,也是发现未知功能的地图。定期翻一翻面板,是低成本了解工具全貌的好方法,比通读文档轻松得多。

例 3(挑战):终端占用了 Ctrl+X,自定义前缀

📌 场景:你的终端模拟器或 tmux 把 Ctrl+X 用作其它用途,组合键经常冲突。

配置~/.config/opencode/cli.json):

json
{
  "keybinds": {
    "leader": "ctrl+space"
  },
  "leader": {
    "timeout": 2000
  }
}

🔍 讲解:把 Leader 改为不冲突的键,并把超时放宽到 2 秒,组合操作立刻稳定。遇到快捷键问题,正确思路是「查冲突 → 改配置」,而不是忍耐或放弃。配置方法和字段名以官方 Keybinds 文档为准。


⑧ 练习题 ×2

练习 1(巩固型)

📝 题目:不查表,说出完成下列动作的至少一种方式:(a)切换 Agent;(b)新建会话;(c)执行一个你完全不知道快捷键的功能。

💡 思路提示:Leader 组合的字母通常是动作首字母;想不起就用命令面板。

参考答案

text
(a) Ctrl+X → A(A = Agent);
(b) Ctrl+X → N(N = New);
(c) Ctrl+P 打开命令面板,输入关键词搜索后回车执行。

🔍 讲解:这三题验证你是否掌握了「组合前缀 + 面板兜底」的核心思路。思路比具体键位更重要——键位可以改,思路通用。

练习 2(迁移型)

📝 题目:迁移到你常用的软件:哪些软件也采用「前缀键 / 命令面板」的设计?这种设计为什么在专业工具中反复出现?

💡 思路提示:想想编辑器的模态操作、各类工具的「搜索所有命令」框。

参考答案(示例)

text
- Vim/Neovim 的 Leader 键:先按前缀再触发命令,用有限按键承载大量操作;
- VS Code 的 Ctrl+Shift+P 命令面板:搜索并执行任何命令,无需记忆快捷键;
- JetBrains IDE 的 Find Action(Ctrl+Ctrl/A):同样的「搜命令」思路。
共性:专业工具功能数量远超按键数量,前缀组合扩展容量,
命令面板把记忆变成搜索,二者结合让工具「易学且强大」。

知识点 4:斜杠命令、Shell 模式与外部编辑器

① 定位

输入框不只能打字,它还能识别特殊前缀符号。本知识点讲三个前缀入口:/(斜杠命令)、!(Shell 模式),以及用外部编辑器写长 Prompt。它们分别解决「快速调用内置功能」「在会话里跑系统命令」「长文本输入」三类需求。

② 是什么(What)

前缀 / 入口作用例子
/列出并执行斜杠命令/new/models/sessions/undo/redo/agents/editor
!进入 Shell 模式,直接运行系统命令!git status
外部编辑器在你熟悉的编辑器里编写当前 PromptCtrl+XE,或 /editor

要点说明:

  • 斜杠命令:输入 / 即出现命令列表,继续打字可过滤,回车执行。常见命令:/new(新会话)、/sessions(会话列表)、/models(模型)、/agents(Agent)、/undo//redo`(撤销 / 重做消息)。
  • Shell 模式:在空输入框以 ! 开头进入;输入命令回车执行,按 Esc 不执行直接退出。命令在会话工作目录下运行,输出保留在会话中,模型也能看到。
  • 外部编辑器:先设置 VISUALEDITOR 环境变量(如 export EDITOR="nvim");在编辑器里写完保存退出,文本自动带回输入框,再按 Enter 发送。

③ 怎么做(How)

  1. 快速新建会话:输入 /new 回车。
  2. 查看改动文件:输入 !git status 回车——输出进入会话,可直接接着讨论。
  3. 写超长 / 复杂 PromptCtrl+XE 打开 nvim/vim,从容编辑、粘贴大段内容,保存退出后检查并发送。

④ 为什么这么做(Why)

  • 斜杠命令提供「高频动作的最短路径」。 新建会话、切换模型这类动作通过菜单需要好几步,输入 /new 只需几个字符。前缀 / 在聊天类工具中已是通用约定,学习成本极低。
  • Shell 模式打通了「AI 会话」与「系统操作」。 排查问题时你经常需要 git statuslscat 的输出。让命令在会话内执行,输出自动成为上下文——不用在另一个终端跑完再手工粘贴。
  • 外部编辑器发挥「专业工具做专业事」的优势。 nvim/vim 擅长处理大段文本:跳转、替换、宏、分屏都比 TUI 内置输入框强大。写复杂 Prompt、粘贴大段资料时,外部编辑器体验碾压单行输入框。
  • /btw 保护会话纯度。 有些问题你只是想确认一下(「第 2 步那个测试为什么失败?」),答案并不需要进入正式对话;若直接提问,对话里会混入旁支内容,日后压缩、回顾都受干扰。
  • 多入口对应不同场景:轻量动作用 /,系统命令用 !,长文本用外部编辑器——工具分层,各取最短路径。

⑤ 这样做的好处

  • 高频动作极快:几个字符直达目标。
  • 上下文自动汇集:Shell 输出直接进会话,讨论无缝衔接。
  • 长文本编辑舒适:用最顺手的编辑器写 Prompt,质量更高。
  • 旁支问题不污染主线:会话保持干净。
  • 双手路径最短:按任务轻重选择入口,效率最大化。

⑥ 不这么做的问题 / 坏处

  • 只用菜单操作 → 高频动作也要翻好几层,节奏拖沓。
  • 另开终端跑命令再粘贴 → 来回切换,输出格式还可能被终端破坏。
  • 在内置框里硬写长 Prompt → 编辑能力弱,改一段长文极其痛苦,容易放弃打磨。
  • 旁支问题直接发 → 会话混入大量临时问答,主线被稀释。

⑦ 举一反三:三个例子

例 1(基础):用 Shell 模式查看改动

📌 场景:你想知道 AI 刚才改了哪些文件,再决定下一步。

操作:在空输入框输入 !git status 回车。输出出现在会话中,你接着说:「把其中 untracked 的临时文件清理建议列给我,先不要删。」

🔍 讲解! 让系统命令的输出直接成为对话上下文——AI 立刻能看到文件清单并据此回应。如果另开终端跑、再口头描述,既慢又容易漏信息。

例 2(进阶):用外部编辑器打磨一份复杂 Prompt

📌 场景:你要给 AI 一份包含大段配置和多条要求的任务,内置输入框改起来很痛苦。

操作export EDITOR="nvim"(写进 shell 配置则长期有效)→ Ctrl+XE → 在 nvim 里粘贴、分段、反复修改 → :wq 保存退出 → 检查带回的文本 → Enter 发送。

🔍 讲解:外部编辑器把「写 Prompt」变成一次正式的文本编辑工作。复杂任务值得这份郑重——输入工具的上限,会悄悄决定你 Prompt 的上限。用顺手的编辑器,你才愿意反复打磨。

例 3(挑战):用 /btw 验证一个临时疑问

📌 场景:AI 完成了多步任务,你隐约记得第 3 步用了一个你不认识的参数,但只是想搞懂,不想让这个问题混入正式对话。

操作:输入 /btw 第 3 步命令里的 --frozen-lockfile 参数是做什么的?为什么这里要用? 回车。在弹窗中阅读答案,需要保留就按 C 复制。

🔍 讲解/btw(by the way)的答案基于当前上下文、用当前模型,却不进入会话记录——主线保持干净,日后压缩和回顾都不被临时问答干扰。这是高手管理会话纯度的小工具:临时求知走旁路,正式指令走主线。


⑧ 练习题 ×2

练习 1(巩固型)

📝 题目:为下列需求各选最合适的入口:(a)切换模型;(b)看当前目录文件列表并让 AI 分析;(c)临时问个概念但不写入对话;(d)写一份含十多个要点的长 Prompt。

💡 思路提示:回到 /!/btw、外部编辑器四个入口。

参考答案

text
(a) /models(或 Ctrl+X → M);
(b) Shell 模式 !ls(或 !ls -la),输出自动进入会话;
(c) /btw <问题>,答案不写入对话;
(d) Ctrl+X → E 用外部编辑器编辑,保存退出后发送。

🔍 讲解:选对入口的标准是「哪条路径最短、副作用最合适」。这类选择会在使用中变成本能。

练习 2(迁移型)

📝 题目:迁移到你熟悉的软件或操作系统:「不同前缀 / 模式进入不同操作环境」这种设计还出现在哪里?各有什么好处?

💡 思路提示:模态编辑器、手机长按、命令行的特殊提示符都可以。

参考答案(示例)

text
- Vim 的插入 / 普通 / 命令模式:同一个键在不同模式下含义不同,
  用模式切换换取极少按键完成大量操作;
- 浏览器地址栏输入不同前缀(搜索词 vs 网址 vs 特殊命令)走不同处理;
- 聊天工具中以 / 开头触发命令(如 /me)已是行业通用约定。
共性:用「显式前缀 / 模式切换」告诉系统「接下来的输入属于哪个环境」,
避免功能互相打架,同时让每种环境内的操作路径最短。

知识点 5:标签页与会话管理

① 定位

本章收口知识点:TUI 的多任务能力。你可以同时开多个会话(标签页),在它们之间快速切换、关闭、重开。用好标签页,等于在一个终端窗口里拥有一整排「并行进行的工作桌面」。

② 是什么(What)

  • 标签页(Tabs):默认开启,每个打开的会话在顶部占一个标签。
  • 会话(Session):一个独立的上下文空间,对话、文件引用、工具结果彼此隔离。
  • 历史会话:关闭标签不等于删除会话;历史会话可以随时找回。

核心操作表:

操作默认按键
下一标签Ctrl+Tab(或 Alt+↓
上一标签Ctrl+Shift+Tab(或 Alt+↑
关闭当前标签Ctrl+XW
重开刚关闭的标签Ctrl+Shift+T
按编号直达标签Ctrl+X19(也可 Ctrl+1 等)
新建会话Ctrl+XN,或 /new
会话列表Ctrl+XL,或 /sessions
最近会话 + 项目总览Ctrl+O
重命名 / 删除会话Ctrl+R / Ctrl+D(会话列表中)

③ 怎么做(How)

  1. 并行做两件事:当前会话跑长任务时,Ctrl+XN 开新会话处理另一件事,再用 Ctrl+Tab 切回查看。
  2. 快速跳回某任务:记住标签位置,用 Ctrl+X → 数字直达。
  3. 找回历史会话Ctrl+O/sessions,按项目和时间浏览;重要会话可用 Ctrl+R 改名便于日后识别。
  4. 误关标签Ctrl+Shift+T 立刻重开。

④ 为什么这么做(Why)

  • 上下文隔离是会话系统的核心价值。 不同任务的背景、假设互不干扰:修支付 bug 的会话不会被写文档的会话带偏。标签页让多个隔离空间同时在手,又不用开多个终端窗口。
  • 长任务不必阻塞工作。 AI 跑测试、构建可能耗时几分钟;开新标签处理别的事,时间利用率成倍提高——这与浏览器多标签页的价值完全相同。
  • 编号直达依赖「空间位置记忆」。 标签顺序固定后,你会像盲打一样记住「第 2 个是支付任务」,一个组合键直达,比从列表里找快得多。
  • 会话持久化让工作可以跨时间续接。 今天查不完的问题,明天通过会话列表回到原上下文继续;关闭标签只是收起,不是丢失。
  • 及时关闭是管理注意力。 标签过多时,视觉噪音上升、编号记忆失效;保持少量活跃标签,切换才真正快速。

⑤ 这样做的好处

  • 多任务并行不乱:每个会话上下文纯净。
  • 等待时间被利用:长任务在后台标签跑,人继续干别的。
  • 切换飞快:Ctrl+Tab 轮转或编号直达。
  • 工作可跨日续接:历史会话随时找回。
  • 误操作可补救:误关标签一键重开。

⑥ 不这么做的问题 / 坏处

  • 一个会话做所有事 → 上下文混杂、AI 引用错误前提,回到第 0 章警告的状态。
  • 长任务时干等 → 大量时间白白浪费在盯着屏幕上。
  • 开十几个标签不关 → 标签栏失去导航价值,编号记忆全部失效,比没有标签更乱。
  • 不命名会话 → 历史列表里全是难以区分的内容,找回旧任务时逐个翻找。

⑦ 举一反三:三个例子

例 1(基础):长任务期间不空等

📌 场景:你让 AI 跑一轮耗时较长的全量测试。

操作Ctrl+XN 开新会话处理代码阅读;测试跑完后用 Ctrl+Tab 切回查看结果。

🔍 讲解:这是标签页最直接的价值——把等待时间变成工作时间。只要记住长任务在哪个标签,切回只是一键。

例 2(进阶):按项目节奏管理标签

📌 场景:你一天内要处理 3 个不相关的需求。

做法:每个需求一个会话标签,并在会话列表中用 Ctrl+R 改名(如「订单超时排查」「导出功能」「登录重构」);完成一个就 Ctrl+XW 关闭。

🔍 讲解:命名让标签和历史会话都可识别;随做随关则保证标签栏始终只反映「当前真正在做的事」。这两个习惯组合,让多任务并行始终有序。

例 3(挑战):跨天续接一个复杂排查

📌 场景:一个复杂 bug 今晚没查完,你想明天接着来,甚至可能换一台机器。

做法:确保会话有清晰名字;第二天用 Ctrl+O(最近会话 + 项目总览)或 /sessions 找到它,原上下文完整保留,直接继续。

🔍 讲解:会话是持久化存储的工作现场,而不是一次性聊天记录。理解这一点,你才会放心地把未完成的推理过程「挂起」,而不是被迫一鼓作气熬夜做完。跨会话续接能力是 Agent 工具相对一次性问答的重要优势。


⑧ 练习题 ×2

练习 1(巩固型)

📝 题目:写出下列动作的按键:下一标签、关闭标签、重开误关标签、新建会话、按编号直达第 3 个标签、找回历史会话。

💡 思路提示:标签操作大多在 Leader 前缀下,切换与浏览器习惯一致。

参考答案

text
下一标签:Ctrl+Tab(或 Alt+↓);
关闭标签:Ctrl+X → W;
重开误关标签:Ctrl+Shift+T;
新建会话:Ctrl+X → N(或 /new);
直达第 3 个标签:Ctrl+X → 3(或 Ctrl+3);
找回历史会话:Ctrl+O 或 /sessions(Ctrl+X → L)。

🔍 讲解:这组键是多任务操作的核心,建议一次开 3~4 个真实会话反复练切换与关闭,十次即可形成肌肉记忆。

练习 2(迁移型)

📝 题目:迁移到浏览器、操作系统或项目管理工具:「任务分区 + 可随时切换 + 完成即清理」的模式如何体现?为什么这套模式在任何多任务场景都有效?

💡 思路提示:想想浏览器标签、虚拟桌面、看板(Kanban)的 WIP 限制。

参考答案(示例)

text
- 浏览器标签:不同任务开不同标签,切换快;标签过多反而找不到东西,
  做完关掉是普遍共识。
- 虚拟桌面 / 工作区:把不同项目放到不同桌面,视觉上下文互不干扰。
- 看板 WIP 限制:限制「进行中」任务数量,并行太多每件都变慢,
  完成一项再拉入下一项。
共性原理:人的注意力无法真正并行,「分区隔离 + 少量活跃 + 完成清理」
既利用了等待时间,又控制了切换成本,因此在所有多任务场景普遍有效。

🔍 讲解:标签页管理的底层不是 TUI 知识,而是注意力管理。理解到这一层,你管理 AI 会话标签的方法,和管理自己工作任务的方法会自然统一。


本章小结

知识点一句话核心
1. 界面布局会话区 / 输入区 / 状态栏;读懂工作、授权、等待三种信号
2. 输入与引导Enter 发送,组合键换行;跑偏用引导,后续用排队
3. Leader 与面板Ctrl+X 走组合,Ctrl+P 搜一切;记不住随时能查
4. 斜杠 / Shell / 编辑器/ 调命令,! 跑系统命令,外部编辑器写长 Prompt
5. 标签页与会话多会话并行隔离,编号直达,完成即关,跨天可续接

键盘操作到此覆盖了日常所需的绝大部分。下一章《上下文管理》将回到内容层面:如何系统地给 AI 提供、组织和清理上下文——包括 @ 附件、会话压缩(Compaction)等机制。