概述

Cursor 读取并索引您项目的代码库以支持其功能。使用根目录中的 .cursorignore 文件来控制 Cursor 可以访问哪些目录和文件。 Cursor 会阻止访问 .cursorignore 中列出的文件,包括:
由 Agent 发起的工具调用,如终端和 MCP 服务器,无法阻止访问受 .cursorignore 管理的代码

为什么要忽略文件?

安全性:限制对 API 密钥、凭据和机密信息的访问。虽然 Cursor 会阻止被忽略的文件,但由于 LLM 的不可预测性,无法保证完全保护。 性能:在大型代码库或单体仓库中,排除无关部分可以实现更快的索引和更准确的文件发现。

全局忽略文件

在用户设置中设置所有项目的忽略模式,无需逐个项目配置即可排除敏感文件。
Global Cursor Ignore List
默认模式包括:
  • 环境文件:**/.env**/.env.*
  • 凭据:**/credentials.json**/secrets.json
  • 密钥:**/*.key**/*.pem**/id_rsa

配置 .cursorignore

在根目录中使用 .gitignore 语法创建 .cursorignore 文件。

模式示例

config.json      # 特定文件
dist/           # 目录
*.log           # 文件扩展名
**/logs         # 嵌套目录
!app/           # 从忽略中排除(否定)

分层忽略

启用 Cursor Settings > Features > Editor > Hierarchical Cursor Ignore 以搜索父目录中的 .cursorignore 文件。 注意:注释以 # 开头。后面的模式会覆盖前面的模式。模式相对于文件位置。

使用 .cursorindexingignore 限制索引

使用 .cursorindexingignore 仅从索引中排除文件。这些文件仍可被 AI 功能访问,但不会出现在代码库搜索中。

默认忽略的文件

Cursor 会自动忽略 .gitignore 中的文件以及下面的默认忽略列表。可以在 .cursorignore 中使用 ! 前缀来覆盖。

否定模式限制

当使用否定模式(以 ! 为前缀)时,如果父目录通过 * 被排除,则无法重新包含文件。
# 忽略 public 文件夹中的所有文件
public/*

# ✅ 这样可以,因为文件存在于顶层
!public/index.html

# ❌ 这样不行 - 无法重新包含嵌套目录中的文件
!public/assets/style.css
解决方法:显式排除嵌套目录:
public/assets/*
!public/assets/style.css # 现在可以访问此文件
出于性能考虑,被排除的目录不会被遍历,因此对其中包含的文件的模式不会生效。 这与 .gitignore 在嵌套目录中否定模式的实现相匹配。更多详情,请参阅 Git 官方文档中关于 gitignore 模式的说明

故障排除

使用 git check-ignore -v [file] 测试模式。