上下文

程式碼庫索引

為你的程式碼庫建立索引

要使用 @codebaseCtrl/⌘ Enter 獲得更好、更準確的程式碼庫答案,你可以為程式碼庫建立索引。在後台,Cursor 會為程式碼庫中的每個檔案計算嵌入向量,並使用這些向量來提高程式碼庫答案的準確性。

你的程式碼庫索引會自動與最新的程式碼庫更改同步。

你可以在 Cursor Settings > Features > Codebase Indexing 下查看程式碼庫索引的狀態。

https://mintlify.s3.us-west-1.amazonaws.com/cursor/images/chat/codebase-indexing.png

進階設定

預設情況下,Cursor 會索引程式碼庫中的所有檔案。

你還可以展開 Show Settings 部分來訪問更多進階選項。在這裡,你可以決定是否要為新儲存庫啟用自動索引,並且除了 .gitignore 設定外,還可以配置 Cursor 在儲存庫索引期間要忽略的檔案。

如果你的專案中有一些 AI 絕對不需要讀取的大型內容檔案,忽略這些檔案 可以提高答案的準確性。

AI 規則

你可以通過修改 Cursor Settings > General > Rules for AI 下的 Rules for AI 部分來為 Cursor 添加自定義指令。

這些自定義指令將用於 Cursor Chat 和 Ctrl/⌘ K 等功能。

https://mintlify.s3.us-west-1.amazonaws.com/cursor/images/context/rules-for-ai.png

.cursorrules

對於專案特定的指令,你可以在專案根目錄中的 .cursorrules 文件中包含這些指令。

與"Rules for AI"部分一樣,.cursorrules 文件中的指令將用於 Cursor Chat 和 Ctrl/⌘ K 等功能。

@ 符號

基本用法

在 Cursor 的 AI 輸入框中,如 Cmd K、Chat 或 Terminal Cmd K 中,你可以通過輸入 @ 來使用 @ 符號。會出現一個帶有建議列表的彈出選單,它會根據你的輸入自動過濾,只顯示最相關的建議。

鍵盤快捷鍵

你可以使用上/下箭頭鍵在建議列表中導航。你可以按 Enter 選擇建議。如果建議是一個類別,比如 Files,建議將被過濾為僅顯示該類別中最相關的項目。

https://mintlify.s3.us-west-1.amazonaws.com/cursor/images/context/@-symbols-basics.png

Cmd K 鍵盤快捷鍵

你可以使用上/下箭頭鍵在選定的 Cmd K @ 符號列表中導航,使用 Enter 展開/折疊選定的上下文項。對於文件引用,你可以使用 Ctrl/⌘ M 切換文件讀取策略。在 這裡 閱讀更多關於文件讀取策略的信息。

@Files

@Files

在 Cursor Chat 和 Cmd K 等 AI 輸入框中,你可以使用 @Files 引用整個文件。此外,如果你在 @ 後繼續輸入,你會在 @Code 策略後看到你的文件搜索結果。

為了確保你引用的文件是正確的文件,Cursor 會顯示文件路徑的預覽。當你在不同文件夾中有多個同名文件時,這特別有用。

https://mintlify.s3.us-west-1.amazonaws.com/cursor/images/context/@file.png

聊天中的長文件引用

在 Cursor 的聊天中,如果文件內容太長,Cursor 會將文件分成更小的塊,並根據與查詢的相關性重新排序。

https://mintlify.s3.us-west-1.amazonaws.com/cursor/images/context/@file-long-file.png

Cmd K 分塊策略

對於 Cmd K,Cursor 也會根據內容長度以不同方式使用文件引用。

  • auto
    • 根據文件大小自動選擇三種讀取策略之一
  • full file
    • 整個文件用作上下文。
  • outline
    • Cursor 解析文件的大綱並將信息用作上下文。
  • chunks
    • Cursor 將文件分成更小的塊並選擇最相關的一個。

https://mintlify.s3.us-west-1.amazonaws.com/cursor/images/context/@file-cmdk.png

拖放

你也可以從主側邊欄將文件拖放到 Chat 或 Cmd K 中,將它們添加為上下文。

@Folders

目前,@Folders 僅在 Cursor Chat 中支持。

@Folders

你也可以在 Cursor 中引用整個文件夾作為上下文。@Folders 對於 長上下文聊天 特別有用,在這種情況下,你想為 AI 提供大量上下文。

https://mintlify.s3.us-west-1.amazonaws.com/cursor/images/context/@folder.png

@Code

@Code

要引用特定的代碼部分,你可以使用 @Code 符號。

代碼預覽

@Files 符號類似,Cursor 會顯示代碼內容的預覽,這樣你可以驗證你引用的代碼是否正確。

https://mintlify.s3.us-west-1.amazonaws.com/cursor/images/context/@code.png

從編輯器中

添加代碼片段作為上下文的另一種方式是選擇你想要引用的代碼,然後點擊"Add to Chat"(Ctrl/⌘ Shift L)或"Add to Edit"(Ctrl/⌘ Shift K)。

這些操作會將選定的代碼片段添加到聊天輸入框或當前活動的 Cmd K 提示欄中。

https://mintlify.s3.us-west-1.amazonaws.com/cursor/images/context/@code-select.png

要將選定的代碼添加到新聊天中,你可以按 Ctrl/⌘ L

@Docs

@Docs

https://mintlify.s3.us-west-1.amazonaws.com/cursor/images/context/@docs.png

Cursor 帶有一組已爬取、索引並準備好作為上下文使用的第三方文件。你可以使用 @Docs 符號訪問它們。

添加自定義文件

如果你想爬取和索引尚未提供的自定義文件,你可以通過 @Docs > Add new doc 來實現。在你粘貼完想要的文件 URL 後,會出現以下模態框:

https://mintlify.s3.us-west-1.amazonaws.com/cursor/images/context/@docs-add.png

然後 Cursor 會索引並學習該文件,你就可以像使用其他文件一樣將其用作上下文。如果你想索引所有子頁面和子目錄,請確保在 URL 末尾添加斜杠。

https://mintlify.s3.us-west-1.amazonaws.com/cursor/images/context/@docs-learning.png

管理自定義文件

Cursor Settings > Features > Docs 下,你會看到你添加的文件。你可以在此處編輯、刪除或添加新文件。

https://mintlify.s3.us-west-1.amazonaws.com/cursor/images/context/@docs-manage.png

@Git

目前,@Git 僅在 Cursor Chat 中支持。

@Git

在 Cursor 的聊天中,你可以使用 @Git 將 git 提交、差異或拉取請求添加到你的提示中。

https://mintlify.s3.us-west-1.amazonaws.com/cursor/images/context/@git.png

常見用例

@Git 的一個常見用例是讓 Cursor 的 AI 掃描差異並查找可能由差異引起的錯誤或問題。

https://mintlify.s3.us-west-1.amazonaws.com/cursor/images/context/@git-usecase1.png

你也可以使用 @Diff of Working State 從當前差異生成提交消息。

https://mintlify.s3.us-west-1.amazonaws.com/cursor/images/context/@git-commit-message.png

@Codebase

@Codebase

https://mintlify.s3.us-west-1.amazonaws.com/cursor/images/chat/@codebase.png

通過 @Codebase,Cursor Chat 會經過這些步驟,直到找到最重要的代碼片段來使用。

  • 收集:掃描你的程式碼庫以查找重要的文件/代碼塊
  • 重新排序:根據與查詢的相關性重新排序上下文項
  • 推理:思考使用上下文的計劃
  • 生成:提出響應

提交進階程式碼庫查詢的另一種方式是點擊 Ctrl/⌘ + Enter 按鈕旁的拉下選單,並為搜索行為選擇 reranker。這僅在未使用 @Codebase 時可用,否則 @Codebase 優先。

https://mintlify.s3.us-west-1.amazonaws.com/cursor/images/chat/codebase-dropdown.png

@Web

@Web

https://mintlify.s3.us-west-1.amazonaws.com/cursor/images/context/@web.png

使用 @Web,Cursor 會根據你提供的查詢和上下文構建搜索查詢,並搜索網絡以找到相關信息作為額外的上下文。

這對於讓 Cursor 找到網上最新的信息,或讓 Cursor 在幾秒鐘內抓取多個網站以找到最佳答案很有用,用戶無需手動搜索任何地方。

@Chat

此功能目前僅適用於 Cmd K。

@Chat

你可以在 Cmd K 中使用 @Chat 將當前聊天消息添加為上下文。當你有一個想要應用於編輯或生成代碼的 AI 對話時,這很有用。

https://mintlify.s3.us-west-1.amazonaws.com/cursor/images/context/@chat.png

@Definitions

此功能目前僅適用於 Cmd K。

@Definitions

@Definitions 符號將所有附近的定義添加到 Cmd K 作為上下文。

https://mintlify.s3.us-west-1.amazonaws.com/cursor/images/context/@definitions.png

粘貼連結

@https://your-link.com

要讓 Cursor 在回應前訪問連結,請輸入 @ 然後粘貼連結。

https://mintlify.s3.us-west-1.amazonaws.com/cursor/images/context/@link.png

移除連結

預設情況下,我們會自動解析連結並在 Cursor Chat 中將它們轉換為 @Links。如果你更喜歡將連結作為純文本,請點擊連結,然後點擊 Unlink

https://mintlify.s3.us-west-1.amazonaws.com/cursor/images/context/@link-unlink.png

忽略文件

.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