上下文
程式碼庫索引
為你的程式碼庫建立索引
要使用 @codebase
或 Ctrl/⌘ Enter
獲得更好、更準確的程式碼庫答案,你可以為程式碼庫建立索引。在後台,Cursor 會為程式碼庫中的每個檔案計算嵌入向量,並使用這些向量來提高程式碼庫答案的準確性。
你的程式碼庫索引會自動與最新的程式碼庫更改同步。
你可以在 Cursor Settings
> Features
> Codebase Indexing
下查看程式碼庫索引的狀態。
進階設定
預設情況下,Cursor 會索引程式碼庫中的所有檔案。
你還可以展開 Show Settings
部分來訪問更多進階選項。在這裡,你可以決定是否要為新儲存庫啟用自動索引,並且除了 .gitignore 設定外,還可以配置 Cursor 在儲存庫索引期間要忽略的檔案。
如果你的專案中有一些 AI 絕對不需要讀取的大型內容檔案,忽略這些檔案 可以提高答案的準確性。
AI 規則
你可以通過修改 Cursor Settings
> General
> Rules for AI
下的 Rules for AI
部分來為 Cursor 添加自定義指令。
這些自定義指令將用於 Cursor Chat 和 Ctrl/⌘ K 等功能。
.cursorrules
對於專案特定的指令,你可以在專案根目錄中的 .cursorrules
文件中包含這些指令。
與"Rules for AI"部分一樣,.cursorrules
文件中的指令將用於 Cursor Chat 和 Ctrl/⌘ K 等功能。
@ 符號
基本用法
在 Cursor 的 AI 輸入框中,如 Cmd K、Chat 或 Terminal Cmd K 中,你可以通過輸入 @
來使用 @ 符號。會出現一個帶有建議列表的彈出選單,它會根據你的輸入自動過濾,只顯示最相關的建議。
鍵盤快捷鍵
你可以使用上/下箭頭鍵在建議列表中導航。你可以按 Enter
選擇建議。如果建議是一個類別,比如 Files
,建議將被過濾為僅顯示該類別中最相關的項目。
Cmd K 鍵盤快捷鍵
你可以使用上/下箭頭鍵在選定的 Cmd K @ 符號列表中導航,使用 Enter
展開/折疊選定的上下文項。對於文件引用,你可以使用 Ctrl/⌘ M
切換文件讀取策略。在 這裡 閱讀更多關於文件讀取策略的信息。
@Files
@Files
在 Cursor Chat 和 Cmd K 等 AI 輸入框中,你可以使用 @Files
引用整個文件。此外,如果你在 @
後繼續輸入,你會在 @Code
策略後看到你的文件搜索結果。
為了確保你引用的文件是正確的文件,Cursor 會顯示文件路徑的預覽。當你在不同文件夾中有多個同名文件時,這特別有用。
聊天中的長文件引用
在 Cursor 的聊天中,如果文件內容太長,Cursor 會將文件分成更小的塊,並根據與查詢的相關性重新排序。
Cmd K 分塊策略
對於 Cmd K,Cursor 也會根據內容長度以不同方式使用文件引用。
- auto
- 根據文件大小自動選擇三種讀取策略之一
- full file
- 整個文件用作上下文。
- outline
- Cursor 解析文件的大綱並將信息用作上下文。
- chunks
- Cursor 將文件分成更小的塊並選擇最相關的一個。
拖放
你也可以從主側邊欄將文件拖放到 Chat 或 Cmd K 中,將它們添加為上下文。
@Folders
目前,@Folders
僅在 Cursor Chat 中支持。
@Folders
你也可以在 Cursor 中引用整個文件夾作為上下文。@Folders
對於 長上下文聊天 特別有用,在這種情況下,你想為 AI 提供大量上下文。
@Code
@Code
要引用特定的代碼部分,你可以使用 @Code
符號。
代碼預覽
與 @Files
符號類似,Cursor 會顯示代碼內容的預覽,這樣你可以驗證你引用的代碼是否正確。
從編輯器中
添加代碼片段作為上下文的另一種方式是選擇你想要引用的代碼,然後點擊"Add to Chat"(Ctrl/⌘ Shift L
)或"Add to Edit"(Ctrl/⌘ Shift K
)。
這些操作會將選定的代碼片段添加到聊天輸入框或當前活動的 Cmd K 提示欄中。
要將選定的代碼添加到新聊天中,你可以按 Ctrl/⌘ L
。
@Docs
@Docs
Cursor 帶有一組已爬取、索引並準備好作為上下文使用的第三方文件。你可以使用 @Docs
符號訪問它們。
添加自定義文件
如果你想爬取和索引尚未提供的自定義文件,你可以通過 @Docs
> Add new doc
來實現。在你粘貼完想要的文件 URL 後,會出現以下模態框:
然後 Cursor 會索引並學習該文件,你就可以像使用其他文件一樣將其用作上下文。如果你想索引所有子頁面和子目錄,請確保在 URL 末尾添加斜杠。
管理自定義文件
在 Cursor Settings
> Features
> Docs
下,你會看到你添加的文件。你可以在此處編輯、刪除或添加新文件。
@Git
目前,@Git
僅在 Cursor Chat 中支持。
@Git
在 Cursor 的聊天中,你可以使用 @Git
將 git 提交、差異或拉取請求添加到你的提示中。
常見用例
@Git
的一個常見用例是讓 Cursor 的 AI 掃描差異並查找可能由差異引起的錯誤或問題。
你也可以使用 @Diff of Working State
從當前差異生成提交消息。
@Codebase
@Codebase
通過 @Codebase
,Cursor Chat 會經過這些步驟,直到找到最重要的代碼片段來使用。
- 收集:掃描你的程式碼庫以查找重要的文件/代碼塊
- 重新排序:根據與查詢的相關性重新排序上下文項
- 推理:思考使用上下文的計劃
- 生成:提出響應
提交進階程式碼庫查詢的另一種方式是點擊 Ctrl/⌘ + Enter
按鈕旁的拉下選單,並為搜索行為選擇 reranker
。這僅在未使用 @Codebase
時可用,否則 @Codebase
優先。
@Web
@Web
使用 @Web
,Cursor 會根據你提供的查詢和上下文構建搜索查詢,並搜索網絡以找到相關信息作為額外的上下文。
這對於讓 Cursor 找到網上最新的信息,或讓 Cursor 在幾秒鐘內抓取多個網站以找到最佳答案很有用,用戶無需手動搜索任何地方。
@Chat
此功能目前僅適用於 Cmd K。
@Chat
你可以在 Cmd K 中使用 @Chat
將當前聊天消息添加為上下文。當你有一個想要應用於編輯或生成代碼的 AI 對話時,這很有用。
@Definitions
此功能目前僅適用於 Cmd K。
@Definitions
@Definitions
符號將所有附近的定義添加到 Cmd K 作為上下文。
粘貼連結
@https://your-link.com
要讓 Cursor 在回應前訪問連結,請輸入 @
然後粘貼連結。
移除連結
預設情況下,我們會自動解析連結並在 Cursor Chat 中將它們轉換為 @Links
。如果你更喜歡將連結作為純文本,請點擊連結,然後點擊 Unlink
。
忽略文件
.cursorignore
文件讓你可以從 Cursor 的程式碼庫索引中排除文件和目錄
關於 .cursorignore
要從 程式碼庫索引 中忽略文件,你可以在專案根目錄中使用 .cursorignore
文件。它的工作方式與 git 的 .gitignore
相同。
.cursorignore
遵循 .gitignore
。如果你已經有 .gitignore
,文件默認會被忽略。如果你想忽略額外的文件,可以將它們添加到 .cursorignore
文件中。
你可以在我們的 安全頁面 上閱讀更多關於這如何工作的信息。
聊天和 Composer 上下文
目前,Cursor Chat 和 Composer 可以訪問其上下文中的所有文件,不受 .cursorignore
設定的影響。
有關我們如何處理 AI 請求的更多信息,可以在我們的 安全頁面 上找到。
.cursorignore
文件示例
忽略特定文件
#忽略 `dist` 目錄中的所有文件
dist/
#忽略所有 `.log` 文件
*.log
#忽略特定文件 `config.json`
config.json