上下文
代码库索引
为你的代码库建立索引
要使用 @codebase 或 Ctrl/⌘ Enter 获得更好、更准确的代码库答案,你可以为代码库建立索引。在后台,Cursor 会为代码库中的每个文件计算嵌入向量,并使用这些向量来提高代码库答案的准确性。
你的代码库索引会自动与最新的代码库更改同步。
你可以在 Cursor Settings > Features > Codebase Indexing 下查看代码库索引的状态。

高级设置
默认情况下,Cursor 会索引代码库中的所有文件。
你还可以展开 Show Settings 部分来访问更多高级选项。在这里,你可以决定是否要为新仓库启用自动索引,并且除了 .gitignore 设置外,还可以配置 Cursor 在仓库索引期间要忽略的文件。
如果你的项目中有一些 AI 绝对不需要读取的大型内容文件,忽略这些文件 可以提高答案的准确性。
AI 规则
你可以通过修改 Cursor Settings > General > Rules for AI 下的 Rules for AI 部分来为 Cursor 添加自定义指令。
这些自定义指令将用于 Cursor Chat 和 Ctrl/⌘ K 等功能。

.cursorrules
对于项目特定的指令,你可以在项目根目录中的 .cursorrules 文件中包含这些指令。
与"Rules for AI"部分一样,.cursorrules 文件中的指令将用于 Cursor Chat 和 Ctrl/⌘ K 等功能。
@ 符号
基本用法
在 Cursor 的 AI 输入框中,如 Cmd K、Chat 或 Terminal Cmd K 中,你可以通过输入 @ 来使用 @ 符号。会出现一个带有建议列表的弹出菜单,它会根据你的输入自动过滤,只显示最相关的建议。
键盘快捷键
你可以使用上/下箭头键在建议列表中导航。你可以按 Enter 选择建议。如果建议是一个类别,比如 Files,建议将被过滤为仅显示该类别中最相关的项目。

Cmd K 键盘快捷键
你可以使用上/下箭头键在选定的 Cmd K @ 符号列表中导航,使用 Enter 展开/折叠选定的上下文项。对于文件引用,你可以使用 Ctrl/⌘ M 切换文件读取策略。在 这里 阅读更多关于文件读取策略的信息。
@Files
@Files
在 Cursor Chat 和 Cmd K 等 AI 输入框中,你可以使用 @Files 引用整个文件。此外,如果你在 @ 后继续输入,你会在 @Code 策略后看到你的文件搜索结果。
为了确保你引用的文件是正确的文件,Cursor 会显示文件路径的预览。当你在不同文件夹中有多个同名文件时,这特别有用。

聊天中的长文件引用
在 Cursor 的聊天中,如果文件内容太长,Cursor 会将文件分成更小的块,并根据与查询的相关性重新排序。

Cmd K 分块策略
对于 Cmd K,Cursor 也会根据内容长度以不同方式使用文件引用。
- auto
- 根据文件大小自动选择三种读取策略之一
- full file
- 整个文件用作上下文。
- outline
- Cursor 解析文件的大纲并将信息用作上下文。
- chunks
- Cursor 将文件分成更小的块并选择最相关的一个。

拖放
你也可以从主侧边栏将文件拖放到 Chat 或 Cmd K 中,将它们添加为上下文。
@Folders
目前,@Folders 仅在 Cursor Chat 中支持。
@Folders
你也可以在 Cursor 中引用整个文件夹作为上下文。@Folders 对于 长上下文聊天 特别有用,在这种情况下,你想为 AI 提供大量上下文。

@Code
@Code
要引用特定的代码部分,你可以使用 @Code 符号。
代码预览
与 @Files 符号类似,Cursor 会显示代码内容的预览,这样你可以验证你引用的代码是否正确。

从编辑器中
添加代码片段作为上下文的另一种方式是选择你想要引用的代码,然后点击"Add to Chat"(Ctrl/⌘ Shift L)或"Add to Edit"(Ctrl/⌘ Shift K)。
这些操作会将选定的代码片段添加到聊天输入框或当前活动的 Cmd K 提示栏中。

要将选定的代码添加到新聊天中,你可以按 Ctrl/⌘ L。
@Docs
@Docs

Cursor 带有一组已爬取、索引并准备好作为上下文使用的第三方文档。你可以使用 @Docs 符号访问它们。
添加自定义文档
如果你想爬取和索引尚未提供的自定义文档,你可以通过 @Docs > Add new doc 来实现。在你粘贴完想要的文档 URL 后,会出现以下模态框:

然后 Cursor 会索引并学习该文档,你就可以像使用其他文档一样将其用作上下文。如果你想索引所有子页面和子目录,请确保在 URL 末尾添加斜杠。

管理自定义文档
在 Cursor Settings > Features > Docs 下,你会看到你添加的文档。你可以在这里编辑、删除或添加新文档。

@Git
目前,@Git 仅在 Cursor Chat 中支持。
@Git
在 Cursor 的聊天中,你可以使用 @Git 将 git 提交、差异或拉取请求添加到你的提示中。

常见用例
@Git 的一个常见用例是让 Cursor 的 AI 扫描差异并查找可能由差异引起的错误或问题。

你也可以使用 @Diff of Working State 从当前差异生成提交消息。

@Codebase
@Codebase

通过 @Codebase,Cursor Chat 会经过这些步骤,直到找到最重要的代码片段来使用。
- 收集:扫描你的代码库以查找重要的文件/代码块
- 重新排序:根据与查询的相关性重新排序上下文项
- 推理:思考使用上下文的计划
- 生成:提出响应
提交高级代码库查询的另一种方式是点击 Ctrl/⌘ + Enter 按钮旁边的下拉菜单,并为搜索行为选择 reranker。这仅在未使用 @Codebase 时可用,否则 @Codebase 优先。

@Web
@Web

使用 @Web,Cursor 会根据你提供的查询和上下文构建搜索查询,并搜索网络以找到相关信息作为额外的上下文。
这对于让 Cursor 找到网上最新的信息,或让 Cursor 在几秒钟内抓取多个网站以找到最佳答案很有用,用户无需手动搜索任何地方。
@Chat
此功能目前仅适用于 Cmd K。
@Chat
你可以在 Cmd K 中使用 @Chat 将当前聊天消息添加为上下文。当你有一个想要应用于编辑或生成代码的 AI 对话时,这很有用。

@Definitions
此功能目前仅适用于 Cmd K。
@Definitions
@Definitions 符号将所有附近的定义添加到 Cmd K 作为上下文。

粘贴链接
@https://your-link.com
要让 Cursor 在回应前访问链接,请输入 @ 然后粘贴链接。

移除链接
默认情况下,我们会自动解析链接并在 Cursor Chat 中将它们转换为 @Links。如果你更喜欢将链接作为纯文本,请点击链接,然后点击 Unlink。

忽略文件
.cursorignore 文件让你可以从 Cursor 的代码库索引中排除文件和目录
关于 .cursorignore
要从 代码库索引 中忽略文件,你可以在项目根目录中使用 .cursorignore 文件。它的工作方式与 git 的 .gitignore 相同。
.cursorignore 遵循 .gitignore。如果你已经有 .gitignore,文件默认会被忽略。如果你想忽略额外的文件,可以将它们添加到 .cursorignore 文件中。
你可以在我们的 安全页面 上阅读更多关于这如何工作的信息。
聊天和 Composer 上下文
目前,Cursor Chat 和 Composer 可以访问其上下文中的所有文件,不受 .cursorignore 设置的影响。
有关我们如何处理 AI 请求的更多信息,可以在我们的 安全页面 上找到。
.cursorignore 文件示例
忽略特定文件
#忽略 `dist` 目录中的所有文件
dist/
#忽略所有 `.log` 文件
*.log
#忽略特定文件 `config.json`
config.json