本指南結合使用體驗與功能解析,助你快速上手Cursor AI,優化編程流程!
cursor是由Anysphere 這個實驗室打造的代碼編輯器,它集成了GPT4、Claude 3.5等先進LLM的類vscode的編譯器,可以理解為在vscode中集成了AI輔助編程助手,從下圖中的頁面可以看出cursor的佈局和vscode基本一致,並且cursor的使用操作也和vscode一致,包括extension下載、python編譯器配置、遠程服務器連接和settings等,如果你是資深vscode用戶,那麼恭喜你可以直接無縫銜接cursor。
Cursor 和VSCode 的最大的不同點在於它內置了AI 進行代碼的協作,為此它對VSCode 進行了諸多修改,這些修改使得它的體驗比在VSCode 上使用諸如Github Copilot 一類的插件更加舒服。
Cursor安裝
Cursor 需要去它的官網上下載。下載完後需要註冊才能使用,支持Google 與Github 賬號登錄。
官網下載地址: https://www.cursor.com/
在註冊完成後,你會有一個專屬賬號,每個賬號的模型調用次數是有限的,其中GPT4和Claude3.5的免費調用次數為500次,另外Cursor 採取的是訂閱制。新用戶可以試用兩週的Pro 訂閱。而要訂閱Pro 的話,每個月需要支付20 刀。
安裝完後,Cursor 會在第一次啟動時提示你是否要導入你的VSCode 配置,導入完成後,你基本上就擁有了AI 增強版的VSCode 了,首次使用記得設置中文,操作步驟和VSCode一致:
點擊最上面的框,輸入>language,可以配置簡體中文。
配置模型
Cursor內置了很多LLMs,包括最先進的GPT4s、Claude3.5s和openai最新發布的推理模型o1-preview和o1-mini,在右上角的設置中即可打開相應的模型進行輔助編程。
通過這些基本的Cursor 鍵盤快捷鍵和符號提高您的生產力。本速查表涵蓋了Cursor 的AI 驅動功能的關鍵命令,包括Cursor Tab、Cmd K、聊天、Composer 和@ 符號。注意:Windows/Linux 上使用Ctrl,macOS 上使用⌘(Command)。
Cursor Tab(AI 代碼補全)
接受建議Tab
拒絕建議Esc
部分接受Ctrl/⌘ + →
Cmd K(內聯編輯)
打開Cmd KCtrl/⌘ + K
應更改Ctrl/⌘ + ↵
取消/刪除更改Ctrl/⌘ + ⌫
聊天界面
打開聊天Ctrl/⌘ + L
將代碼添加到聊天Ctrl/⌘ + L
Composer
打開ComposerCtrl/⌘ + I
打開全屏ComposerCtrl/⌘ + Shift + I
@ 符號
引用文件@filename
引用函數@functionName
引用變量@variableName
搜索代碼庫@codebase query
搜索網絡@web query
通用
打開命令面板Ctrl/⌘ + Shift + P
打開設置Ctrl/⌘ + ,
切換側邊欄Ctrl/⌘ + B
切換終端`Ctrl/⌘ + ``
新建文件Ctrl/⌘ + N
保存文件Ctrl/⌘ + S
Cursor 常用功能說明
Command K:
讓您可以使用AI編輯和寫代碼。要編輯,只需選擇一些代碼,點擊「Edit」,並描述代碼應該如何改變。要生成全新的代碼,只需在沒有選擇任何內容的情況下輸入Command K。
Copilot++:
Cursor的原生自動完成功能。它是Copilot的一個更強大的版本,可以建議中間行的完成和整個差異。它使用了一個定制的模型,訓練來預測代碼庫中的下一個編輯。
Chat:
讓您可以與一個能看到您的代碼庫的AI進行交談。聊天可以始終看到您當前的文件和光標,所以您可以問它一些問題,比如:「這裡有錯誤嗎?」。您可以使用Command+Shift+L或「@」將特定的代碼塊添加到上下文中。您可以使用Command+Enter與您的整個代碼庫進行聊天。
@ 符號:
可讓您輕鬆地向AI 顯示代碼。嘗試在Command+K 或聊天中鍵入「@」,以獲取文件夾中所有文件和代碼符號的下拉列表。您可以使用它來生成具有特定依賴項的代碼(「使用與@ErrorPopup相同的樣式」)或詢問文件(「@inlineDiffService.ts做什麼」)。
Codebase Answers:
讓您可以向AI詢問您的整個代碼庫的問題。要使用它們,請在聊天中輸入Command+Enter或點擊輸入框中的「with codebase」按鈕。您可以問一些問題,比如「撤銷重做邏輯在哪裡?」或「我們如何在客戶端處理身份驗證令牌?」。
Docs
這個功能可以提高AI對第三方庫的理解。要使用文檔,請在聊天或Command K中輸入@LibraryName。要讓Cursor爬取自定義文檔,請在Command K或聊天中輸入「@Add」。您將指定爬取的起點和所有爬取的URL應該遵循的前綴。
Auto-Debug:
Auto-debug是一個用於在Cursor的終端中修復錯誤的代理。要使用它,請在終端錯誤後點擊藍色的「Auto-debug」按鈕。點擊後,AI將查看您的文件,並輸入一個思考鏈來嘗試解決問題。
Fix Lints:
Cursor幫助您快速修復lint錯誤。只需將鼠標懸停在任何lint錯誤上,然後點擊出現的藍色「Fix」按鈕。一個AI回應將出現在聊天中。再也不用對著複雜的Typescript或Rust錯誤瞇眼了!
@ 符號常見功能
為了更方便地向大語言模型提供上下文信息,Cursor 內設了不同地@ 註記,使用@ 註記能夠方便地註入不同類型的上下文信息到你的對話裡。
@ 註記有一些是通用的,在所有對話窗口中都可以使用;有一些是特殊的,我會在提到時做補充說明。
注:事實上Github Copilot 也有類似的功能,但是沒Cursor 齊全好用。
1. @Files 註記,傳遞指定代碼文件的上下文
當你在對話框輸入@Files 註記時,Cursor 會自動彈出對你代碼倉庫的檢索列表,你可以輸入你想要導入上下文的文件名,而後按下確認鍵,相應的文件裡的內容便會屆時自動注入到上下文中:
2. @Code 註記,傳遞指定代碼塊的上下文
Code 註記提供更精確的代碼片段,@ 註記的使用都大同小異,會彈出相應的檢索框,你輸入關鍵詞後在索引列表中選擇相應的代碼塊即可。
代碼塊的識別是由你開發環境的LSP 決定的,大多數情況下都是精確的:
3. @Docs 註記,從函數或庫的官方文檔裡獲取上下文
@Docs 註記能夠從函數或庫的官方文檔裡獲取上下文。目前,它只能從可訪問的在線文檔裡獲取上下文。因此,你自己寫的類似於JSDoc 之類的文檔信息除非你能整一個線上地址,否則是沒用的~我個人覺得這個功能不是很泛用。
@Docs註記,通常使用需要你手動導入文檔
4. @Web 註記,從搜索引擎的搜索內容獲取上下文
@Web 註記類似於一種方法,它會默認將你的提問先向搜索引擎進行搜索,然後從搜索結果裡提取上下文餵給LLM。但因為Cursor 官方沒公開透明具體的實現法子,它自個也沒調好,實際上使用效果忽好忽差的。
如果你遇到問題想偷懶不打開網頁搜報錯或是大模型自身的回答無法解決問題,你可以直接使用這個註記。
5. @Folders 註記,傳遞文件目錄信息的上下文
@Folders 註記能夠提供文件目錄的相關信息,如果你遇到什麼路徑問題,可以考慮使用這個註記向大模型尋求解決方法。
6. @Chat 註記,只能在文件內的代碼生成窗口裡使用的註記
@Chat 註記只能在文件內的代碼生成窗口(CTRL + K 打開的窗口)裡使用,它能夠將你右邊打開的對話窗口裡的對話內容作為上下文傳遞給大模型。
7. @Definitions 註記,只能在文件內的代碼生成窗口裡使用的註記
和@Chat 註記一樣,@Definitions 註記只能在文件內的代碼生成窗口裡使用。它會將你光標停留的那一行代碼裡涉及到的變量、類型的相關定義作為上下文傳遞給大模型,類似於@Code 註記。
8. @Git 註記,只能在對話窗裡使用
對話窗指的是通過CTRL + L 與CTRL + I 打開的對話窗口。 @Git 註記能夠將你當前的Git 倉庫的commit 歷史作為上下文傳遞給大模型。
感覺比較適合在代碼協作的時候查戰犯清算的時候使用。
9. @Codebase 註記,只能在對話窗裡使用,用於在代碼倉裡掃描相應的文件傳入
Codebase 註記其實不是很好用,與其說它是掃代碼倉,不如說是從代碼倉裡尋找到你想要的文件的上下文傳入,也就是CodebaseFilter 。
我感覺平時開發不會用到,因為它要傳遞過濾條件設置過濾參數:
@Codebase註記需要你傳遞數量、過濾/排序時使用的模型等信息
它和通過CTRL + enter 快捷鍵的區別估計就在於你能夠自定義查詢的過濾規則
總結
本文介紹了Cursor的下載和使用新手如何快速上手,Cursor集成了LLM的編譯器更加強大,並且極易上手,在使用了一段時間之後也是慢慢和Cursor在編程上形成了默契,相比較之前的GitHub copilot,Cursor能力更強更全面。