上下文
代码库索引
为你的代码库建立索引
要使用 @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