概述

Cursor 會讀取並索引您專案的程式碼庫以支援其功能。使用根目錄中的 .cursorignore 檔案來控制 Cursor 可以存取哪些目錄和檔案。 Cursor 會阻止存取 .cursorignore 中列出的檔案,包括:
由 Agent 發起的工具呼叫,如終端機和 MCP 伺服器,無法阻止存取受 .cursorignore 管制的程式碼

為什麼要忽略檔案?

安全性:限制對 API 金鑰、憑證和機密資訊的存取。雖然 Cursor 會阻擋被忽略的檔案,但由於 LLM 的不可預測性,無法保證完全的保護。 效能:在大型程式碼庫或 monorepos 中,排除不相關的部分可以加快索引速度並提高檔案發現的準確性。

全域忽略檔案

在使用者設定中設定所有專案的忽略模式,以排除敏感檔案而無需進行個別專案配置。
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] 測試模式。