忽略文件

了解如何使用 .cursorignore 和 .cursorindexingignore 来控制文件访问和索引

概述

Cursor 提供了两种不同的忽略文件来控制文件的处理方式:

  • .cursorignore:尽最大努力排除文件不被 AI 功能访问和索引
  • .cursorindexingignore:仅控制哪些文件被索引用于搜索和上下文(与旧版的 .cursorignore 功能相同)

自 0.46 版本起,.cursorignore 尝试将文件从 AI 访问和索引中排除(类似于以前未发布的 .cursorban)。如果只需要像旧版 .cursorignore 那样控制索引,请使用 .cursorindexingignore

.cursorignore

.cursorignore 是尽力而为的,这意味着我们不能保证其中列出的文件绝对不会被发送。在某些情况下,我们可能存在允许被忽略文件被上传的错误。如果您发现此类错误,请告知我们,我们将尽力修复!

.cursorignore 文件尽最大努力将文件从 AI 功能和索引中排除。这对以下情况非常有用:

  • 尝试排除敏感文件不被 AI 访问和索引
  • 排除包含机密信息的配置文件
  • 限制对专有代码的访问

列在 .cursorignore 中的文件将尽可能地从 Cursor 的 AI 功能中排除:

  • 不包含在标签页和聊天请求中
  • 不包含在 AI 功能的上下文中
  • 不索引用于搜索或上下文功能
  • 不通过 @-符号或其他上下文工具使用

.cursorindexingignore

.cursorindexingignore 文件自动继承您的 .gitignore 文件中的所有模式

.cursorindexingignore 文件仅控制哪些文件被索引用于搜索和上下文功能。这提供了与旧版 .cursorignore 相同的索引控制。在以下情况下使用此文件:

  • 排除大型生成文件不被索引
  • 跳过对二进制文件的索引
  • 控制代码库的哪些部分可搜索
  • 优化索引性能

重要提示.cursorindexingignore 中的文件仍然可以手动作为上下文包含或被 AI 功能访问 - 它们只是不会被自动索引或包含在搜索结果中。

默认索引忽略文件

对于仅索引而言,除了在 .gitignore.cursorignore.cursorindexignore 文件中指定的文件外,以下文件默认会被忽略。请注意,这些默认文件仅适用于索引,不适用于其他 AI 功能。

package-lock.json
pnpm-lock.yaml
yarn.lock
composer.lock
Gemfile.lock
bun.lockb
.env*
.git/
.svn/
.hg/
*.lock
*.bak
*.tmp
*.bin
*.exe
*.dll
*.so
*.lockb
*.qwoff
*.isl
*.csv
*.pdf
*.doc
*.doc
*.xls
*.xlsx
*.ppt
*.pptx
*.odt
*.ods
*.odp
*.odg
*.odf
*.sxw
*.sxc
*.sxi
*.sxd
*.sdc
*.jpg
*.jpeg
*.png
*.gif
*.bmp
*.tif
*.mp3
*.wav
*.wma
*.ogg
*.flac
*.aac
*.mp4
*.mov
*.wmv
*.flv
*.avi
*.zip
*.tar
*.gz
*.7z
*.rar
*.tgz
*.dmg
*.iso
*.cue
*.mdf
*.mds
*.vcd
*.toast
*.img
*.apk
*.msi
*.cab
*.tar.gz
*.tar.xz
*.tar.bz2
*.tar.lzma
*.tar.Z
*.tar.sz
*.lzma
*.ttf
*.otf
*.pak
*.woff
*.woff2
*.eot
*.webp
*.vsix
*.rmeta
*.rlib
*.parquet
*.svg
.egg-info/
.venv/
node_modules/
__pycache__/
.next/
.nuxt/
.cache/
.sass-cache/
.gradle/
.DS_Store/
.ipynb_checkpoints/
.pytest_cache/
.mypy_cache/
.tox/
.git/
.hg/
.svn/
.bzr/
.lock-wscript/
.Python/
.jupyter/
.history/
.yarn/
.yarn-cache/
.eslintcache/
.parcel-cache/
.cache-loader/
.nyc_output/
.node_repl_history/
.pnp.js/
.pnp/

文件格式

两种文件都使用与 .gitignore 相同的语法。以下是一些示例:

基本模式

# 忽略 `dist` 目录中的所有文件
dist/

# 忽略所有 `.log` 文件
*.log

# 忽略特定文件 `config.json`
config.json

高级模式

仅包含 app 目录中的 *.py 文件:

# 忽略所有内容
*
# 不忽略 app
!app/
# 不忽略 app 内的目录
!app/*/
!app/**/*/
# 不忽略 python 文件
!*.py

故障排除

忽略文件语法完全遵循 .gitignore。如果遇到问题:

  1. 在搜索查询中将 "cursorignore" 替换为 "gitignore"
  2. 在 Stack Overflow 上查找类似模式
  3. 使用 git check-ignore -v [file] 测试模式以了解匹配情况

常见陷阱:

  • 模式是相对于忽略文件位置匹配的
  • 后面的模式会覆盖先前的模式
  • 目录模式需要尾部斜杠
  • 否定模式 (!) 必须否定前面的模式