@ 引用概述
@ 引用是 Caret 最强大的功能之一,让您能够无缝地将外部上下文引入对话中。无需复制粘贴代码、错误消息或文档,您只需使用 @ 符号引用它们即可。

当您在聊天输入框中输入 @
时,Caret 会显示可用引用类型的菜单。这些引用让您可以直接在对话中引用文件、文件夹、问题、终端输出、git 更改,甚至网页内容。
可用的 @ 引用
Caret 支持多种类型的 @ 引用,每种都旨在将不同类型的上下文引入您的对话:
使用 @/path/to/file
引用工作区中的任何文件。Caret 会看到完整的文件内容,包括导入、相关函数和周围的上下文。
使用 @/path/to/folder/
引用整个目录。Caret 会看到文件夹结构和所有文件内容,非常适合理解多个文件之间的复杂交互。
使用 @problems
向 Caret 显示工作区中的所有错误和警告。Caret 会看到包含文件位置和错误消息的完整列表。
使用 @terminal
分享您最近的终端输出。Caret 会看到保持格式的完整输出,非常适合调试构建错误或测试失败。
使用 @git-changes
引用未提交的更改,或使用 @[commit-hash]
引用特定提交。Caret 会看到完整的差异、提交消息和其他相关信息。
使用 @https://example.com
引用网页内容。Caret 会获取并查看完整的网页内容,非常适合引用文档或 GitHub 问题。
为什么 @ 引用很重要
@ 引用通过以下方式改变您与 Caret 的交互:
-
消除复制粘贴:无需再复制粘贴代码、错误消息或终端输出。只需直接引用它们。
-
保留上下文:Caret 看到完整的上下文,包括可能相关的导入、相关函数和周围代码。
-
保持格式:终端输出、错误消息和网页内容保持其格式,使它们更容易理解。
-
启用复杂工作流:结合多个 @ 引用,为 Caret 提供问题的完整画面:
我遇到这些错误:@problems
这是我的组件:@/src/components/Form.jsx
这是 API 端点:@/src/api/users.js
提交时出现错误:@terminal
我认为这个提交可能导致了问题:@a1b2c3d
入门指南
使用 @ 引用的方法:
- 在聊天输入框中输入
@
- 从菜单中选择引用类型或继续输入
- 对于文件和文件夹,在工作区结构中导航
- 像平常一样发送消息
Caret 会自动处理引用并将引用的内容包含在发送给 AI 的上下文中。
在下次与 Caret 对话时尝试使用 @ 引用 - 当您能够无缝引入外部上下文时,您会惊讶于交互变得多么高效和有效。
底层工作原理
当您在消息中使用 @ 引用时,幕后发生着复杂的处理过程:
-
检测:当您发送消息时,Caret 使用正则表达式扫描文本中的 @ 引用模式
-
处理:对于每个检测到的引用,Caret 会:
- 确定引用类型(文件、文件夹、问题、终端、git、URL)
- 获取相关内容(文件内容、终端输出等)
- 适当地格式化内容
-
增强:原始消息用结构化数据增强:
您的原始消息 with @/path/to/file
<file_content path="/path/to/file">
[完整文件内容]
</file_content> -
上下文包含:这条包含所有嵌入内容的增强消息被发送给 AI 模型
-
无缝响应:AI 现在可以"看到"所有引用的内容,就像您手动复制粘贴了它们一样
每当您使用 @ 引用时,整个过程都会自动无缝地进行,为 AI 提供完整的上下文,而您无需手动复制任何内容。
每种类型的 @ 引用都有其特定的实现细节,您可以在各自的文档页面中找到。