概覽

Cursor 會讀取並索引你的專案程式碼庫來支援各項功能。用根目錄中的 .cursorignore 檔案控制 Cursor 可以存取哪些目錄與檔案。 Cursor 會封鎖 .cursorignore 中列出的檔案,使其無法被以下功能存取:
由 Agent 觸發的工具呼叫(例如 terminal 與 MCP servers)無法阻擋 受 .cursorignore 管控的程式碼被存取

為什麼要忽略檔案?

安全性:限制存取 API 金鑰、憑證與機密。雖然 Cursor 會阻擋被忽略的檔案,但由於 LLM 具有不可預測性,無法保證完全防護。 效能:在大型程式碼庫或 monorepo 中,排除無關部分可加快索引並更精準地發現檔案。

全域忽略檔案

在使用者設定中為所有專案設定忽略模式,免逐一專案設定即可排除敏感檔案。
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] 測試規則。