為什麼放棄Github Copilot?
Cursor 和 Github Copilot的能力對比,有越來越多的人開始從Github Copilot轉向Cursor,那麼為什麼Cursor會這麼受歡迎呢?其實很多推薦Cursor的作者都沒有說明白,Cursor到底比Github Copilot強在哪裡。從本質上講Cursor主要優勢體現在兩個方面。
有越來越多的人開始從Github Copilot轉向Cursor,為什麼Cursor會這麼受歡迎呢?對於AI輔助編碼,什麼樣的能力才是最重要的?其實很多推薦Cursor的作者都沒有說明白,Cursor到底比Github Copilot強在哪裡。
從本質上講Cursor主要優勢體現在兩個方面:
- 代碼修改能力
- 上下文引用能力
代碼修改能力: Cursor的核心優勢
想象一下,你正在寫一篇文章。「插入」就像是在文章末尾添加新內容,而「修改」則是對已經寫好的部分進行調整和改進。在編程中也是如此:
- 「插入代碼」就像是在程序末尾添加新功能
- 「修改代碼」則是對現有代碼進行優化或修正
這兩種操作帶來的編碼體驗是天差地別的。有了修改能力,你就像有了一個隨時待命的編程助手,可以幫你快速調整和完善代碼,而不僅僅是在末尾添加新內容。
這一核心優勢不僅使Cursor在功能上更加強大,還讓整個編碼體驗更加流暢和高效。
Github Copilot的局限性
Github Copilot 主要基於上下文進行插入代碼的操作。雖然這已經很有幫助,但它的功能僅限於追加新代碼。
在 Github Copilot 官方的例子中:
你需要在JavaScript文件中輸入函數頭:
function calculateDaysBetweenDates(begin, end) {
然後GitHub Copilot會自動建議提示的其餘部分。這樣的操作只是追加了一段代碼,並沒有修改當前的代碼。
Cursor的全方位編輯能力
相比之下,Cursor不僅可以插入新代碼,還可以直接修改現有代碼。
這種能力體現在以下幾個方面:
-
多行編輯: Cursor能夠根據當前的代碼上下文同時建議多行代碼的修改,你要做的就是按下Tab鍵,讓Cursor幫你修改就可以了。
這種絲滑的體驗真的讓你感覺到像是有一個人在跟你一起寫代碼。
-
內聯編輯: 通過使用
Ctrl/Cmd K
快捷鍵,你可以選擇要編輯的代碼塊,然後在提示欄中輸入修改指令。Cursor會根據你的指令智能地修改選中的代碼。如果覺得Cursor修改後的代碼符合預期,直接點擊Accept就可以了,這種交互方式也是大家感覺使用Cursor非常順手的原因。(主要還是Github Copilot不支持修改,沒辦法提供這種體驗)
-
智能預測: Cursor能夠智能預測你下一步的代碼意圖,並給出相應的建議。
這個例子中你修改了updates變量的名稱為updatesToServer,Cursor就會預測下面的updates變量也應該更新為updatesToServer。
所以在你修改了代碼的某個地方之後,Cursor會自動提示你其他地方的代碼也需要同步修改, 所以這時候你就只需要一路的Tab按下去就行了,爽到飛起。
-
Composer功能: 雖然目前還處於Beta階段,但Cursor的Composer功能已經展現出同時編輯和生成多個文件的能力,這在複雜項目中尤其有用。
這種全方位的編輯能力使得Cursor在使用體驗上遠超Github Copilot,讓開發者真正感受到「起飛」的感覺。
上下文引用能力: 更直觀,更強大
在AI輔助編碼中,準確理解和利用上下文信息至關重要。Cursor在這方面也表現出色,提供了更直觀、更強大的上下文引用能力。
Cursor的@符號引用
在Cursor的AI輸入框中(如Cmd K、Cmd L或Terminal Cmd K),你只需輸入@
符號,就會彈出一個建議列表,顯示可引用的上下文信息。這個列表會根據你的輸入自動過濾,只顯示最相關的建議。
可供引用的上下文選項清晰明了,用戶一看就知道每個選項代表什麼樣的上下文信息。並且這些選項基本覆蓋了日常開發中所有可能用到的上下文信息。
其中 @Codebase 更是提供了全局代碼的檢索能力,Cursor會提前對你的項目代碼進行Indexing處理,並把相關的索引信息存儲到本地(Copilot則是依賴Github的API進行遠程檢索)。
Github Copilot的複雜引用方式
相比之下,Github Copilot提供了Chat participants和Chat variables兩種上下文引用方式,分別使用@
和#
符號。這種設計不僅增加了使用的複雜性,命名方式也不夠直觀清晰。
與Cursor相比,GitHub Copilot能提供的上下文選擇範圍也比較有限,無法達到Cursor那樣全面的覆蓋。
Chat participants:
Chat variables:
值得一提的是,Github Copilot直到今年初才跟進了多文件上下文引入的功能。從Github的更新日誌中可以看出,他們在這方面還有很多需要向Cursor學習和借鑒的地方。
結語
Cursor通過其強大的代碼修改能力和直觀的上下文引用功能,為開發者提供了一個比Github Copilot更高效、更智能的AI編碼助手。如果你正在尋找一種能真正提升編碼效率和質量的工具,不妨嘗試一下Cursor。它可能會讓你體驗到前所未有的編碼「起飛」感覺!
你有使用過Cursor或Github Copilot嗎?歡迎分享你的經驗和看法!