忽略文件

使用 .cursorignore 和 .cursorindexingignore 控制 Cursor 的 AI 功能和索引可以访问哪些文件

概述

Cursor 读取项目的代码库并为其编制索引以支持其功能。您可以通过将文件添加到根目录来控制 Cursor 可以访问哪些目录和文件。.cursorignore

Cursor 会尽最大努力阻止对 from: 中列出的文件的访问。.cursorignore

由 Cursor 的聊天功能发起的对终端和 MCP 服务器等服务的工具调用目前无法阻止对受.cursorignore

全局忽略文件

现在,您可以通过用户级设置定义应用于所有项目的忽略模式。这样可以将干扰或敏感文件(如构建输出或 Secret )排除在提示之外,而无需按项目进行配置。

Global Cursor Ignore List

为什么要忽略文件?

将 Cursor 配置为忽略代码库的某些部分有两个常见原因:

安全

虽然您的代码库不会永久存储在 Cursor 的服务器或支持其功能的 LLM 上,但出于安全原因,您可能仍希望限制对某些文件的访问,例如包含 API 密钥、数据库凭据和其他密钥的文件。

Cursor 会尽最大努力阻止对忽略文件的访问,但由于 LLM 行为不可预知,我们无法保证这些文件永远不会被公开。

性能

如果你在一个 monorepo 或非常大的代码库中工作,其中很大一部分与你正在开发的代码无关,你可以考虑将 Cursor 配置为忽略应用程序的这些部分。

通过排除代码库的不相关部分,Cursor 将更快地为大型代码库编制索引,并在搜索上下文时更快、更准确地查找文件。

Cursor 旨在支持大型代码库,并擅长评估文件相关性,但在使用特别大的代码库或包含对开发无关紧要的文件时,ignore 功能非常有用。

配置.cursorignore

要实现 Cursor 的忽略功能,请将文件添加到代码库目录的根目录,并列出要忽略的目录和文件。.cursorignore

该文件使用与文件中使用的模式匹配语法相同的语法。.cursorignore``.gitignore

分层忽略

默认情况下,Cursor 将仅在当前工作区中查找文件。从 > > > 启用后,Cursor 将在文件树中一直向上搜索文件,从而允许在嵌套项目目录中进行更灵活的配置。.cursorignore`` Cursor Settings``Features``Editor``Hierarchical Cursor Ignore``.cursorignore

基本模式示例

  1. # Ignore specific file `config.json`
  2. config.json
  3. # Ignore `dist` directory and all files inside
  4. dist/
  5. # Ignore all files with a `.log` extension
  6. *.log

高级模式示例

  1. # Ignore entire codebase
  2. *
  3. # Do not ignore `app` directory
  4. !app/
  5. # Ignores logs directories in any directory
  6. **/logs

考虑

  • 空行将被忽略

  • 以 开头的行被视为注释并被忽略#

  • 模式相对于文件的位置进行匹配.cursorignore

  • 模式将覆盖文件中前面列出的冲突模式

Limit Indexing with.cursorindexingignore

要实现 Cursor 的忽略功能仅用于索引,请将文件添加到代码库目录的根目录,并列出要从索引中排除的目录和文件。.cursorindexingignore

中列出的文件不会包含在 Cursor 的索引中,但仍可由 Cursor 的 AI 辅助功能访问,包括当 Cursor 搜索代码库并将其公开给 LLM 时。.cursorindexingignore

默认忽略的文件

Cursor 还将忽略根目录和 Default Ignore List (默认忽略列表) 中列出的文件中列出的所有文件。.gitignore

要不忽略这些文件中列出的文件,请将其添加到文件中并带有前缀。.cursorignore``!

默认忽略列表

故障 排除

要排查 ignore 文件的问题,请尝试使用该命令测试模式。git check-ignore -v [file]