这两天我在用 Codex 时注意到一个很有意思的变化。
之前引用文件总是要手动输入路径,或者复制粘贴。文件名长了、有空格、有中文的时候,特别容易出错。
我就琢磨...要是能像 Slack 或者 Notion 那样,打个 @ 就能自动补全,该多好。
没想到,OpenAI 真的做了这个功能,而且比我想象的还要强大。
一开始我没太在意,以为就是个简单的文件自动补全。但仔细看了功能描述后,我发现这个设计相当有意思。
这是什么功能?
简单来说,这个 功能 把 Codex TUI 里的 @ 提及功能做了一个彻底的升级。
以前你打 @,只能搜索文件系统里的文件。
现在你打 @,它会同时搜索
- 文件系统(文件和目录)
- 已安装的插件(plugins)
- Skills(技能模块)
而且这些不同类型的结果会在同一个弹窗里展示,用不同的标签和颜色区分。
这个设计思路真的很赞。
你可能会问,不就是个自动补全吗,有必要搞这么大动静?
说真的,我一开始也是这么想的。
但用了之后才发现,这个看似简单的功能,背后解决的是一个很深层的问题...
上下文切换的成本。
想象一下这个场景:你在跟 Codex 对话,想让它帮你分析某个文件的代码。
以前的流程是
- 停下来,去文件浏览器里找到那个文件
- 复制文件路径
- 切回终端,粘贴路径
- 继续跟 Codex 对话
整个过程可能只需要 15 秒钟,但这 15 秒钟里,你的思维被打断了。你要从「思考代码逻辑」切换到「找文件」,然后再切换回来。
这种微型的上下文切换,一天可能要发生几十次。累积起来,对效率的影响是巨大的。
有了统一的 @ 提及功能,整个流程变成了
- 打
@ - 输入文件名的一部分
- 按回车选中
思维完全没有中断,手也不用离开键盘。
你敢信,就这么一个小改动,让我的编码流畅度提升了至少 30%。
核心功能详解
三种提及类型
这个功能支持三种不同类型的提及
1. 文件/目录(Filesystem)
这是最基础的。打 @src/m 会自动补全 src/main.rs、src/models/user.py 等匹配的文件。
如果路径里有空格,它会自动加上引号,避免 shell 解析错误。
这也是很多其他AI工具很早期的普遍功能

如果是图片文件,选中后还会作为附件发送给 Codex,让它进行视觉分析。
2. 插件(Plugins)
如果你安装了 Codex 插件,比如 github-assistant 或者 database-helper,打 @github 就能快速引用。
选中后会在 prompt 里插入 $github-assistant,Codex 就知道要调用这个插件的能力。
3. Skills(技能)
Skills 是 Codex 的一种扩展机制,可以封装特定的工作流程。
比如你可能有一个 code-review skill,专门用来做代码审查。打 @code 就能快速引用它。

搜索模式
这块需要注意一下。
默认的搜索模式是「All Results」,会同时显示所有类型的结果。
但有时候你可能只想搜文件,或者只想找插件。这时候可以用搜索模式来过滤。
目前支持三种模式
- All Results(默认):显示所有类型
- Filesystem Only:只显示文件和目录
- Plugins:显示插件和 skills

切换模式的方式是在输入框里加前缀,或者用快捷键。这个设计跟 Codex App 保持一致,降低了学习成本。
渲染细节
功能 的描述里提到了几个很有意思的实现细节
类型标签
每个结果前面都有一个标签,标明它是 Plugin、Skill、File 还是 Dir。这样你可以一眼看出这是什么类型的资源。
颜色区分
插件和文件系统用了不同的颜色。在我的终端主题里,插件是紫色的,文件是绿色的。这种视觉上的区分,让扫描结果变得更高效。
固定高度布局
弹窗固定显示 8 行结果。这个数字是经过精心选择的...太少不够用,太多会占用太多屏幕空间。
截断处理
如果终端窗口比较窄,过长的文件名会被截断,但会保证关键信息(比如文件扩展名)可见。
实际使用场景
我用这个功能两周,发现了几个特别爽的使用场景。
场景一:快速引用多个文件
以前要让 Codex 分析多个文件,我得一个一个复制路径。
现在只需要
@src/auth @src/database @src/middleware 帮我看看这三个模块之间的依赖关系
一气呵成,手都不用离开键盘。
场景二:调用插件能力
我装了一个 github-pr-review 插件,专门用来分析 GitHub PR。
以前要调用的话,得手动输入 $github-pr-review。
现在打 @github,看到插件出现在列表里,按回车就完事了。
这才是真正的人性化设计。
场景三:使用 Skills
我有一个 generate-tests skill,可以根据函数签名自动生成测试用例。
打 @gen,选中这个 skill,然后把函数代码贴进去,Codex 就会自动调用这个 skill 生成测试。
整个过程行云流水,没有任何中断。
一些细节设计
坦率的讲,这个 PR 最让我欣赏的不是功能本身,而是那些看似微不足道的设计细节。
不支持 App Connectors
PR 的描述里特意提到,统一的 @mentions 弹窗不会显示 app connectors。这是为了跟 Codex App 保持一致。Connector mentions 仍然可以通过现有的 $mention 路径使用。
这种克制我很欣赏...不是所有功能都要塞进同一个入口,保持边界清晰很重要。
图片文件特殊处理
如果选中的是图片文件,Codex 会尝试把它作为附件发送,让模型进行视觉分析。这个功能对于前端开发来说特别有用,可以直接截图让 Codex 帮你写 CSS。
路径引用自动加引号
如果文件路径包含空格,插入时会自动加上引号。这个小细节避免了无数潜在的 bug。
固定高度 + 滚动
弹窗固定 8 行高度,超出部分可以滚动。这个设计保证了无论有多少匹配结果,都不会突然占用大量屏幕空间,影响其他内容的显示。
跟其他工具的对比
很多人可能会拿这个功能跟 VS Code 的 @ 提及、或者 Cursor 的类似功能比较。
说句公道话,它们各有优劣。
| 维度 | Codex TUI | VS Code | Cursor |
|---|---|---|---|
| 提及类型 | 文件+插件+skills | 文件+符号 | 文件+符号 |
| 交互方式 | 纯键盘 | 键盘+鼠标 | 键盘+鼠标 |
| 终端集成 | ✓ | ✗ | ✗ |
| 插件生态 | 早期 | 成熟 | 中等 |
| 学习曲线 | 低 | 中 | 中 |
Codex TUI 的优势在于它是纯键盘驱动的,对于习惯终端的开发者来说,效率更高。劣势在于插件生态还在早期阶段,没有 VS Code 那么丰富。
但它的发展方向是对的...在终端里提供一个高效、轻量的 AI 编程体验,这个定位我很认同。
写在最后
我用这个新功能一周,最大的感受是:好的工具设计应该是隐形的。
你不会注意到它的存在,但你会发现自己工作得更顺畅了。手指不用离开键盘,思维不用频繁切换,一切都自然而然地发生了。
这个 @ 提及功能就是这样。
它不是什么革命性的创新,甚至可以说是一个很「普通」的功能。很多工具都有类似的自动补全。
但正是这种「普通」,让它变得不可或缺。
就像空气一样,你平时不会注意到它,但一旦没有了,你就会立刻感受到不适。
昨晚我又看了一下 Codex 的 GitHub 仓库,发现最近的 commit 频率很高,几乎每天都有新的功能加入。
这不是一个停滞的项目,而是一个在快速迭代、不断进化的产品。
也许再过几个月,Codex TUI 会成为终端开发者的标配工具。
也许不会。
但至少现在,它给了我一个理由,继续留在终端里写代码。
而不是被迫切换到图形界面。
这种感觉,就像是找到了一个懂你的老朋友。
不需要多余的言语,一个眼神,它就知道了你的意图。
新时代的编程工具,一定会到来的。
而且它可能就藏在一个小小的 @ 符号里。