cursor 介紹

參考資料

普通人也可以看的 AI 编程指南 | Cursor 教程|Cursor 使用技巧和思路|如何免费使用 Cursor

前言

此文章是以上參考資料中的影片的內容整理,完整操作可以去查看影片,目前最新版cursor 已經取消或新增部分功能,文章中有說明

Cursor 的核心功能

  • tab鍵自動補全代碼

  • 模型選擇

    • 建議使用的模型包括 gpt-4o 和 Claude 3.5 Sonnet,前者適合綜合領域的問答理解,後者在程式碼生成領域更優秀
  • Ask v.s. Agent v.s Edit

  • 使用 @ 符號喚醒功能菜單

  • codebase

  • Cursor Rules (全域與專案規則)

    • .cursorrules
  • Cursor 的使用技巧和思路

  • 其他功能

    • 生成git message
  • 如何白嫖


Ask v.s. Agent v.s Edit

Ask 模式(當前模式) ctrl + l

特點

  • 只能看到您明確提供的代碼或信息

  • 無法主動搜索您的代碼庫

  • 回答更快速直接

  • 適合一般性的編程問題

適用場景

  • 通用編程概念解釋

  • 代碼語法問題

  • 簡單的代碼示例

  • Vue、React 等框架的一般使用方法

  • 算法解釋

  • 設計模式討論


Agent 模式 ctrl + i

特點

  • 可以主動搜索和讀取您的整個代碼庫

  • 能夠理解項目上下文

  • 處理時間相對較長

  • 可以提供更具體的項目相關建議

適用場景

  • 需要了解項目特定實現的問題

  • 代碼重構建議

  • 項目架構相關問題

  • 特定文件或組件的修改

  • 項目依賴關係的問題

  • 需要跨文件分析的問題


Edit 模式

特點

  • 可以直接對代碼進行修改

  • 提供具體的代碼更改建議

  • 支持批量修改

使用場景

  • 直接修改代碼

  • 重構代碼

  • 添加新功能

選擇建議:

使用 Ask 模式當:

  • 問題是通用的編程概念

  • 不需要了解項目具體實現

  • 需要快速的回答

  • 問題範圍明確且獨立

使用 Agent 模式當:

  • 需要了解項目具體實現

  • 問題涉及多個文件或組件

  • 需要基於現有代碼進行修改或優化

  • 需要項目級別的建議

使用 Edit 模式當

  • 需要直接修改代碼

  • 需要代碼重構

  • 需要批量修改

實際例子:

Ask 模式適合的問題:

1
2
3
4
5
6

- "Vue 3 的 ref 和 reactive 有什麼區別?"

- "如何實現一個簡單的防抖函數?"

- "Vue 組件生命週期有哪些?"

Agent 模式適合的問題:

1
2
3
4
5
- "我的項目中 UserService 在哪些地方被使用了?"

- "如何優化當前項目的性能?"

- "這個組件如何與其他組件交互?"

Edit 模式適合的問題:

1
2
3
4
5
- "將這個函數改為 async/await"

- "添加錯誤處理"

- "重構這段代碼"

總的來說,如果您的問題是關於具體項目實現或需要了解代碼庫上下文,建議使用 Agent 模式;如果是通用的編程問題,使用 Ask 模式就足夠了; 修改代碼用Edit模式。


使用 @ 符號喚醒功能菜單

15:20開始

  • @files & folders :引用一個文件夾或資料夾

    • files 跟 folders 整合在一起了,點進去可以選擇要當作上下文的文件或目錄
  • @code :選中一塊程式碼 當作上下文

    • 直接全選一個代碼塊,ctrl + l 比較快
  • @docs :選擇第三方文檔 (Cursor 默認帶有一些,帶有Official就是)

    • 也可以自訂義文檔@docs (自定義文檔):可以添加自定義的文檔鏈接,Cursor 會自動抓取內容並編入索引,方便在聊天中引用. 這相當於一個基於專案的知識庫

    • 例如引入需求文檔、接口文檔

    • 可以在設置 (Futures -> Docs) 中添加和管理自定義文檔鏈接

      • 如果添加文檔鏈接時在 URL 後面帶有斜槓 /,Cursor 會鎖定該鏈接及其所有子頁面和子目錄
  • @link :臨時引用一個鏈接,AI 會先解析鏈接內容再結合輸入的提示詞進行回覆

  • @web :讓 AI 根據提供的資訊和上下文構建搜索查詢,搜索網絡上的相關資訊作為附加上下文進行回覆,相當於一個 AI 搜索引擎

  • @git:選擇歷史提交,將某一次或多次提交添加到輸入框中作為上下文,方便查看提交的修改或對比多次提交的差異


Notepad (已取消此功能)

  • @notepad:打開記事本功能,可以作為臨時筆記記錄、專案相關的上下文記錄或保存 AI 的對話歷史記錄

Cursor 最近的更新中確實移除了內建的 Notepad 功能。

這個改變主要是因為:

  1. 大多數用戶更傾向於直接在主編輯器中工作

  2. 為了簡化界面和提升性能

替代方案:

  1. 直接在 Cursor 主編輯器中創建新文件

  2. 使用系統的記事本

  3. 使用其他文本編輯器(如 VS Code、Sublime Text 等)

  4. 在 Cursor 中創建臨時文件(.txt)進行簡單的文本編輯

如果您經常需要做臨時筆記,建議:

  • 在項目中創建一個專門的 notes.md 或 temp.txt 文件

  • 使用獨立的筆記軟件(如 Notion、OneNote 等)

  • 使用系統自帶的記事本


codebase

21:52

  • @codebase

輸入 @codebase 後,AI 會根據給出的指令對採集的專案程式碼進行排序、推理,然後給出最匹配的答案

  • 使用 @codebase 時,Cursor 會執行四個步驟:收集 (掃描專案相關文件或程式碼塊) -> 重新排序 (根據與查詢的相關性對上下文進行排序) -> 推理 (思考如何利用上下文) -> 生成 (給出回覆)

  • 首次打開新專案時,Cursor 會自動採集專案程式碼

  • 為了確保採集完整,建議每次打開新專案時,在設置 (Futures -> Codebase Indexing) 中點擊 Reset Index 重新採集

  • Codebase Indexing 的原理:將本地程式碼庫分割成小塊語言數據,發送到 Cursor 的伺服器,Cursor 使用 OpenAI Embedding API 進行嵌入,並將文件相對路徑存儲到遠程的向量數據庫中,利用索引提高回覆質量

  • Cursor 尊重 .gitignore 文件,其中聲明的文件或目錄不會被索引

  • 可以創建 .cursorignore 文件來聲明需要忽略的文件或目錄,以++縮小索引範圍++,提高程式碼生成和理解的準確性

  • 不應被索引的文件類型包括

    1. 日誌文件

    2. ++環境變量++文件 (如果有機密資訊擔心的話就把它設置在.cursorignore)

    3. 構建輸出的文件

    4. 緩存文件

    5. 第三方工具的配置文件等

  • 新手可以使用 Composer 讓 AI 檢索整個專案目錄並生成 .cursorignore 文件


Cursor Rules (全域與專案規則)

25:09

  • 全域規則:在設置 (Rules AI) 中可以配置 Cursor 的全域規則,例如設置 AI 回覆的語言

  • 專案規則 (.cursorrules) :可以在專案的根目錄創建 .cursorrules 文件,用於設置只針對該專案的 Cursor 規則

  • 每次與 AI 交流時,Cursor 會參考 .cursorrules 中的規則

  • 如果不知道如何編寫 .cursorrules 文件,可以在 Chat 模式中使用 @ 符號引用專案文檔等,然後讓 AI 檢索整個專案並生成 .cursorrules 文件,之後再根據需要進行修改

  • 可以在 .cursorrules 文件的第一行寫上 使用中文回覆,這樣 AI 在該專案中回覆時都會以中文進行

可以在 .cursorrules 裡面寫入

  • 項目簡介

  • 使用那些技術 (typescript、tailwind.css、vue3…)

  • 目錄架構

  • 組件規範

  • 樣式規範

  • 命名規範

有點像是cursor 的前置 prompt


Cursor 的使用技巧和思路

26:08

  • 回滾 (Undo) 功能

    • Cursor 會為每次 Composer 的問答都做一個 restore checkpoint 標記

    • 但如果該次修改是新創建檔案,回退效果無效

如何提高AI回復準確性?

29:25

  • AI 複述需求指令:在給出 AI 指令時,先讓 AI 複述一遍需求再進行回覆,以便確認 AI 是否準確理解

  • 明確需求輻射範圍:指令要盡可能小且單一化,明確指令的範圍,最好攜帶相關的程式碼或文件,告知 AI 在什麼範圍內進行修改 可以利用 Cursor 輸入框內置的各種 @ 功能來輔助

  • 需求拆解:如果需求較大,可以將其拆解成多個小步驟,或者在一次問答中以條列式的方式清晰描述

  • 將 AI 當成小孩子:與 AI 溝通時要邏輯清晰,描述問題時要加以引導,可以一併發送自己的解決思路或參考資料


其他功能

40:51

  • Git Commit Message 自動生成:如果專案使用了 Git,在修改程式碼並暫存後,Cursor 可以為暫存的文件一鍵生成更有意義的 Commit Message,它會分析當前的更改和以前提交的信息,遵循相同的提交規範

如何白嫖

41:56

這部分我沒有實踐過,只是做個紀錄

  • 由於 Cursor 註冊後有 14 天的免費試用期,可以每 14 天使用一個新的郵箱賬號註冊 Cursor

  • 臨時郵箱:使用臨時郵箱平台提供的隨機郵箱來註冊 Cursor,用於接收驗證碼

  • 無限郵箱:在無限郵箱平台註冊一個主郵箱,然後可以使用主郵箱名稱後加不同字符的方式創建多個子郵箱來註冊 Cursor

  • 規避設備指紋檢測:由於過多的人「白嫖」,Cursor 更新了用戶指紋檢測機制,同一設備使用免費賬號登錄太多次可能會被限制使用

  • 可以使用腳本更新 Cursor 配置文檔中的用戶指紋信息來規避這個問題


cursor 介紹
https://austin72905.github.io/2025/03/17/cursor/
作者
Austin Lin
發布於
2025年3月17日
許可協議