概述
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
。如果遇到问题:
- 在搜索查询中将 "cursorignore" 替换为 "gitignore"
- 在 Stack Overflow 上查找类似模式
- 使用
git check-ignore -v [file]
测试模式以了解匹配情况
常见陷阱:
- 模式是相对于忽略文件位置匹配的
- 后面的模式会覆盖先前的模式
- 目录模式需要尾部斜杠
- 否定模式 (
!
) 必须否定前面的模式