【AI】AI編程助手:Cursor、Codeium、GitHub Copilot、Roo Cline、Tabnine

文章目錄

  • 一、基本特性對比
  • 二、收費標準
  • 三、私有部署能力
    • 1、Tabnine
    • 2、Roo Code
  • 三、代碼補全與自然語言生成代碼
  • 四、安裝
    • 獨立的IDE安裝
    • 插件安裝
  • 五、基本使用
    • (一)Cursor
    • (二)GitHub Copilot
      • 1、獲取代碼建議
      • 2.聊天
        • 1)上下文
        • 2)Chat participants
        • 3)Slash Commands
        • 4)切換AI模型
        • 5)Inline Chat
        • 6)Terminal Inline Chat
        • 7)智能操作
      • 3、Copilot Edits
      • 4、自定義指令
    • (三)Windsurf/Codeium
  • 參考

一、基本特性對比

在這里插入圖片描述

二、收費標準

Cursor:https://www.cursor.com/pricing
Windsurf/Codeium: https://codeium.com/pricing
GitHub Copilot: https://github.com/features/copilot/plans
Tabnine: https://www.tabnine.com/pricing/

三、私有部署能力

Tabnine與Roo Code均支持私有部署。

1、Tabnine

它僅支持企業客戶,可以選擇部署一個私有的、自托管版本的 Tabnine 集群。

部署選項

  • 在 AWS、GCP 或 Azure 上的虛擬私有云(VPC)
  • 在您自己的服務器上進行本地部署

私有安裝可以部署在完全隔離的環境中。

官方文檔:https://docs.tabnine.com/main/administering-tabnine/private-installation

2、Roo Code

它是通過Ollama 或 LM Studio實現的。
官方文檔:https://docs.roocode.com/advanced-usage/local-models

三、代碼補全與自然語言生成代碼

除Tabnine外,其他均支持所有的主流語言,Tabnine僅完全支持JavaScript、TypeScript、Python、Java、C++、PHP,明細見https://docs.tabnine.com/main/welcome/readme/supported-languages

四、安裝

獨立的IDE安裝

Cursor:https://www.cursor.com/

Windsurf/Codeium:https://codeium.com/windsurf/download_confirmation?code=ma

插件安裝

GitHub Copilot:vscode://GitHub.copilot/
Tabnine:支持多個IDE

  • vscode:vscode:extension/TabNine.tabnine-vscode

Roo Cline:vscode:extension/RooVeterinaryInc.roo-cline

五、基本使用

(一)Cursor

https://mp.weixin.qq.com/s/tCpW_Dt-Vy2CYjyUHeFL4g

(二)GitHub Copilot

官方文檔:https://code.visualstudio.com/docs/copilot/overview

安裝完VSCode插件后,可以在這里打開它:
在這里插入圖片描述

1、獲取代碼建議

與Cursor類似,輸入后Copilot會自動建議函數的剩余部分,如果接受,按Tab;如果拒絕,按Esc。
在這里插入圖片描述
根據注釋生成代碼:
在這里插入圖片描述
它也支持多個建議:
在這里插入圖片描述
支持快捷鍵切換:
在這里插入圖片描述

如果只想接收部分建議,可以使用快捷鍵?→。

2.聊天

安裝完VSCode插件后,可以在這里打開聊天窗口,或使用快捷鍵Control+Command+i (Mac) / Ctrl+Alt+i (Windows/Linux):
在這里插入圖片描述

1)上下文

默認上下文是你當前打開正在看的文件,或當前選中代碼,如果你想更改上下文,有的幾種方式:

  • 拖拽文件進聊天窗口
  • 點擊鏈接的按鈕(?/),然后從Quick Pick 菜單中選擇一種上下文類型:

在這里插入圖片描述
通過輸入# 字符,也可以使用聊天變量(Chat Variables),并看到可用的變量列表。

  • #codebase:將整個代碼庫作為上下文提供給 Copilot Chat,當希望 Copilot 參考整個項目結構、文件關系或全局邏輯時使用。
  • #editor:將當前活動的編輯器內容作為上下文,當希望 Copilot 基于當前編輯器中的完整內容進行解釋、修復或優化時使用。
  • #file:從工作區中添加特定文件的內容或路徑。
  • #selection:將當前編輯器中選中的代碼添加到聊天提示中。
  • #sym:添加工作區中的某個符號(如函數名、類名或變量名)。
  • #terminalLastCommand:將終端中最近運行的命令作為上下文提供給 Copilot Chat,當需要調試、優化或解釋終端命令時使用。
  • #terminalSelection:將終端中選中的文本作為上下文提供給 Copilot Chat,當需要詳細分析選中的終端輸出內容時使用,比如錯誤日志。
  • #vscodeAPI:將 Visual Studio Code 提供的 API 作為上下文,用于幫助開發擴展或自動化工作流程,當需要了解 VS Code API 的功能或如何使用特定 API 時使用。
    在這里插入圖片描述
  • 直接右擊文件選擇:
    在這里插入圖片描述
2)Chat participants

這個就像領域專家,可以在其專業領域提供幫助。使用時直接在聊天輸入框中鍵入@會展示所有的:
在這里插入圖片描述

@github:了解并具備處理 GitHub 倉庫、問題(Issues)、拉取請求(PRs)等相關操作的技能;它額外還可以使用 Bing API 執行網絡搜索。比如:

  • 檢查或管理 GitHub 倉庫中的問題和 PR。
  • 查詢代碼庫相關的信息。
  • 搜索與開發或代碼相關的網絡資源。

@terminal:了解集成終端(shell)及其內容。比如:

  • 協助調試終端命令。
  • 解釋終端輸出內容。
  • 幫助優化或修復終端中的命令操作。

@vscode:了解 Visual Studio Code 的功能、設置及其 API。比如:

  • 指導使用 VS Code 的特性或快捷鍵。
  • 幫助調整 VS Code 設置。
  • 提供與 VS Code API 相關的開發建議或示例代碼。

@workspace:了解工作區中的代碼。比如:

  • 幫助導航代碼庫。
  • 查找相關的類、函數或文件。
  • 提供有關代碼結構、交互或設計模式的建議。

你也可以從Visual Studio Code Marketplace或GitHub Marketplace安裝其他的Chat participants。

  • Visual Studio Code Marketplace:https://marketplace.visualstudio.com/search?term=tag%3Achat-participant&target=VSCode&category=All%20categories&sortBy=Relevance
  • GitHub Marketplace:https://github.com/marketplace
3)Slash Commands

它提供了一種快捷方式,用于執行特定的指令,從而避免編寫復雜的提示。只需輸入/字符,然后輸入命令即可,Chat participants也可以貢獻自己的斜杠命令。

在這里插入圖片描述

常用內置斜杠命令:

  • /clear:開始一個新的聊天會話。
  • /help:獲取關于使用 GitHub Copilot 的幫助。
  • @workspace /explain(或/explain):解釋選定代碼的功能。
  • @workspace /fix(或/fix):提出修復選定代碼問題的建議。
  • @workspace /new(或/new):為新工作區或新文件生成代碼框架。
  • @vscode /runCommand:搜索或運行一個 VS Code 命令。
4)切換AI模型

可以在聊天窗口點擊AI模型切換:
在這里插入圖片描述
以下是當前Copilot Chat 使用的模型:

  • GPT 4o: 這是 Copilot Chat 的默認模型,它是一個多功能的多模態模型,在文本和圖像處理方面表現出色,旨在提供快速可靠的響應;它在非英語語言方面也有出色表現;該模型部署在 Azure 上。
  • Claude 3.5 Sonnet: 該模型在整個軟件開發生命周期的編碼任務中表現出色,包括初始設計、bug修復、維護和優化;GitHub Copilot 使用部署在 Amazon Web Services 上的 Claude 3.5 Sonnet。
  • Gemini 2.0 Flash: 該模型具有強大的編碼、數學和推理能力,非常適合協助軟件開發;該模型部署在 Google Cloud 上。o1: 該模型專注于高級推理和解決復雜問題,特別是在數學和科學領域;響應速度比 GPT 4o 模型慢;每天可向該模型發出 10 次請求;該模型部署在 Azure 上。o3-mini: 這是繼 o1 和 o1-mini 之后的新一代推理模型;
  • o3-mini 模型在編碼基準測試上優于 o1,響應時間與 o1-mini 相當,以幾乎相同的延遲提供更好的質量;最適合代碼生成和小上下文操作;每 12 小時可向該模型發出 50 次請求;該模型部署在 Azure 上。
5)Inline Chat

支持在編輯器內直接提交prompt并獲取代碼建議,無需離開當前工作環境;要啟動編輯器行內聊天,在任何文件中使用?I快捷鍵;或者打開文件后,從標題欄的Copilot菜單中選擇編輯器行內聊天即可。
在這里插入圖片描述
Copilot在編輯器中直接顯示代碼建議,你可以:

  • 接受建議:?
  • Enter丟棄建議:Esc

不滿意時可以為相同的prompt生成新的代碼建議
在這里插入圖片描述
當然,你也可以在編輯器中選中某段代碼進行詢問,不過該行為將限定你的問題限定在該選區范圍內(即添加聊天上下文)。

如果想對比行內聊天建議,可以配置 inlineChat.mode 設置為preview:
在這里插入圖片描述
設置后效果:
在這里插入圖片描述

6)Terminal Inline Chat

和Inline Chat類似,但它作用于命令行,使用的是@terminal聊天參與者,能訪問集成終端的 shell 和內容上下文,在命令行中按 ?I 快捷鍵即可啟動終端行內聊天:

在這里插入圖片描述
若接受建議,可以采用以下快捷鍵:

  • 執行:?Enter
  • 插入:?Enter 插入命令到終端
7)智能操作

選中代碼右擊即可看到Explain、Fix、Review and Comment、Generate Docs、Generate Tests
在這里插入圖片描述
上面的入口有點深,不過使用過程中若發現問題,它也會在行內提示:
在這里插入圖片描述
當然,選中某些字符,這一行的前面也會出現一個快捷icon:
在這里插入圖片描述
可點擊展開快捷操作:
在這里插入圖片描述
下面是我通過Review using Coplit的結構,若有建議,當前行將加入留言,可以點擊展開,另外在命令行中的Comments也可以看到:

在這里插入圖片描述

3、Copilot Edits

與Cursor的Composer類似,Copilot的Edits也是直接在多個文件中快速迭代代碼,修改會直接應用在編輯器中。

在這里插入圖片描述
可以直接點擊右上角的tab切換,或使用快捷鍵??I,還可以在標題上展開Copilot的菜單:
在這里插入圖片描述

4、自定義指令

與Cursor的自定義指令類似,可以為Copilot提供團隊工作流、工具和項目細節,無需在每次對話中重復,它包含四種指令類型:

  • 代碼生成 - 定義代碼風格,如私有變量前綴規則
  • 測試生成 - 指定測試框架等測試相關要求
  • 代碼審查 - 設置代碼審查重點
  • 提交信息生成 - 規范提交信息格式

官網文檔講解很詳細,有需要可以直接看官網:https://code.visualstudio.com/docs/copilot/copilot-customization

(三)Windsurf/Codeium

參考

  • AI編程助手
  • 【AI】Cursor基本使用

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/73958.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/73958.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/73958.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

三軸云臺之角速度信號篇

三軸云臺的角速度信號主要通過其內置的傳感器(如陀螺儀)來感知和測量。 一、角速度信號的感知與測量 在三軸云臺中,陀螺儀是測量角速度的關鍵組件。它通常安裝在三個互相垂直的軸上(通常為X、Y、Z軸),能夠…

Grid 布局實現三欄布局

使用 CSS Grid 布局實現三欄布局(左右固定 100px,中間自適應)的核心原理是通過網格模板精確控制列寬分配。以下是具體實現方法及優化技巧: 一、基礎實現 ?父容器設置 為外層容器添加 display: grid 使其成為網格容器,并通過 grid-template-columns 定義列寬 css .contain…

綠盟春招實習一面

《網安面試指南》https://mp.weixin.qq.com/s/RIVYDmxI9g_TgGrpbdDKtA?token1860256701&langzh_CN 5000篇網安資料庫https://mp.weixin.qq.com/s?__bizMzkwNjY1Mzc0Nw&mid2247486065&idx2&snb30ade8200e842743339d428f414475e&chksmc0e4732df793fa3bf39…

進制轉換(R轉十)(1290. 二進制轉換十進制、1292. 十六進制轉十進制、1291. 八進制轉十進制、1405. 小麗找潛在的素數)

題單地址:題單中心-東方博宜OJ 這里以二進制轉十進制為例(按位加權求和法) 1290. 二進制轉換十進制 問題描述 請將一個 25 位以內的 2 進制正整數轉換為 1010 進制! 輸入 一個 25 位以內的二進制正整數。 輸出 該數對應的…

Redis 本地安裝

首先安裝: https://redis.io/docs/latest/operate/oss_and_stack/install/install-redis/install-redis-from-source/ 進入root目錄 tar -xzvf redis-stable.tar.gz cd redis-stable make然后 install sudo make install最后可以直接啟動 redis-server但是此時啟…

9.嗅探與Wireshark進階分析

嗅探與Wireshark進階分析 第一部分:嗅探的概念與重要性第二部分:Wireshark進階功能第三部分:嗅探實踐與分析總結 目標: ? 理解嗅探(Sniffing)的概念及其在網絡安全中的作用 ? 掌握Wireshark的進階功能&a…

在 VSCode 遠程開發環境下使用 Git 常用命令

在日常開發過程中,無論是單人項目還是團隊協作,Git 都是版本管理的利器。尤其是在使用 VSCode 連接遠程服務器進行代碼開發時,Git 不僅能幫助你管理代碼版本,還能讓多人協作變得更加高效。本文將介紹一些常用的 Git 命令&#xff…

npm 命令使用文檔

目錄 簡介安裝與配置基礎命令依賴管理版本控制腳本管理包發布高級命令配置管理最佳實踐常見問題 1. 簡介 npm (Node Package Manager) 是 Node.js 的官方包管理工具,提供: 130萬 開源包的注冊表訪問依賴解析與版本管理項目腳本自動化私有包管理能力完…

【Linux篇】進程控制

📌 個人主頁: 孫同學_ 🔧 文章專欄:Liunx 💡 關注我,分享經驗,助你少走彎路! 1. 進程創建 1.1 fork函數 在linux中fork函數是非常重要的函數,它從已存在進程中創建一個…

HyperAD:學習弱監督音視頻暴力檢測在雙曲空間中的方法

文章目錄 速覽摘要1. 引言2. 相關工作弱監督暴力檢測雙曲空間中的神經網絡 3. 預備知識雙曲幾何切空間(Tangent Space)指數映射與對數映射(Exponential and Logarithmic Maps)3.1 雙曲圖卷積網絡(Hyperbolic Graph Con…

動態規劃(6.不同路徑II)

題目鏈接:63. 不同路徑 II - 力扣(LeetCode) 解法: 本題為不同路徑的變型,只不過有些地方有「障礙物」,只要在「狀態轉移」上稍加修改就可解決。 狀態表示: 對于這種Γ路徑類」的問題&#xf…

深度洞察:DeepSeek 驅動金融行業智能化轉型變革

該文章為軟件測評,不是廣告!!!! 目錄 一.金融行業的智能化轉型浪潮? 二.DeepSeek的核心技術剖析 1.DeepSeek 模型的金融智慧? 2.實時聯網搜索:把握金融市場脈搏? 3.RAG 能力:鑄就精準金…

藍橋杯備考----》暴力枚舉---金盞花

這道題,一共12位,給了后六位,我們只要枚舉前六位就行了,當然如果是10的12次方的話,必須要開long long才可以存下,這點我們不要忘了 然后題目中又告訴了沒有前導0,我們可以從100000開始枚舉&…

RAG各類方法python源碼解讀與實踐:利用Jupyter對RAG技術綜合評測【3萬字長文】

檢索增強生成(RAG )是一種結合信息檢索與生成模型的混合方法。它通過引入外部知識來提升語言模型的性能,從而提高回答的準確性和事實正確性。為了簡單易學,不使用LangChain框架或FAISS向量數據庫,而是利用Jupyter Note…

Python列表2

print("—————————— 列表的相關操作 ————————————")lst.append(x)在列表lst最后增加一個元素 lst.insert(index,x)在列表中第index位置增加一個元素 lst.clear()清除列表lst中所有元素 lst.pop(index)將列表lst中第index位置的元素取出&#xf…

華為OD機試-IPv4地址轉換成整數(Java 2024 B卷 100分)

題目描述 存在一種虛擬 IPv4 地址 Q,由 4 小節組成,每節的范圍為 0~255,以 # 號間隔。虛擬 IPv4 地址可以轉換為一個 32 位的整數。例如: 128#0#255#255 轉換為 32 位整數的結果為 2147549183(0x8000FFFF)1#0#0#0 轉換為 32 位整數的結果為 16777216(0x01000000)現以字…

C語言復習筆記--數組

今天繼續來淺淺推進一下C語言的復習,這次是數組的復習,話不多說,正文開始. 數組的概念 數組是?組相同類型元素的集合,一種自定義類型.數組中元素個數不能為0.數組分為?維數組和多維數組,多維數組?般?較多?的是?維數組. 下面從一維數組說起. 一維數組的創建和…

Canal 解析與 Spring Boot 整合實戰

一、Canal 簡介 1.1 Canal 是什么? Canal 是阿里巴巴開源的一款基于 MySQL 數據庫增量日志解析(Binlog)中間件,它模擬 MySQL 的從機(Slave)行為,監聽 MySQL 主機的二進制日志(Binl…

《論語別裁》第01章 學而(31) 詩的人生

不過這句話研究起來有一個問題,是詩的問題。我們知道中國文化,在文學的境界上,有一個演變發展的程序,大體的情形,是所謂漢文、唐詩、宋詞、元曲、明小說,到了清朝,我認為是對聯,尤其…

筆記本運行邊緣計算

筆記本電腦可以用來運行PCDN(Peer-to-Peer Content Delivery Network)服務。實際上,如果你有閑置的筆記本電腦,并且它具備一定的硬件條件和網絡環境,那么它可以成為一個不錯的PCDN節點。 運行PCDN的基本要求 硬件需求…