Cursor培训

日期 版本 作者 说明
2024-12-24 V-1.0 孔留锋 文档新建。
2024-12-25 V-1.1 孔留锋 内容补充。

注:该文档为公司内部员工Cursor使用培训配套。

背景

简介

​ Curosr 是由 Apysphere 公司 开发,人工智能优先的代码编辑器。

​ Anysphere 公司 2022 年 1 月 6 日 成立 总部位于 美国 美国东北部,创始人:Aman Sanger, Arvid Lunnemark, Michael Truell, Sualeh Asif,公司涉及行业:人工智能(AI)、生成式人工智能、机器学习、产品设计、软件工程。

​ Anysphere 是一家研究实验室,通过创建人机混合工程师来实现编码自动化。这种方法旨在提高生产力和效率,实现复杂系统中更快的迭代和更智能的问题解决。

官网地址

官网介绍

​ Anysphere 是一个致力于自动化编码的应用研究实验室。我们的方法是培养未来的工程师:一个比任何一个程序员都高效一个数量级的人类人工智能程序员。

​ 这位混合工程师将轻松控制他们的代码库,并且无需低熵击键。即使在最复杂的系统中,他们也会以自己判断的速度进行迭代。通过将人工智能与人类的聪明才智相结合,他们将在智能和设计上超越最好的纯人工智能系统。

​ 我们是一群研究人员和工程师。我们构建软件和模型,以在有用和可能的边缘进行发明。我们的工作已经改善了数十万程序员的生活。

​ 如果这让您兴奋,我们很乐意听取您的意见。

​ — Aman、Sualeh、Michael、Arvid和整个 Anysphere 团队

公司产品

产品名称 产品描述
Cursor 人工智能优先的代码编辑器,旨在通过集成人工智能来协助编写代码、调试和理解代码库,从而提高编码效率和乐趣。
AI Integration for Coding 结合人工智能来预测和协助编码任务,旨在减少错误并简化编码流程。
Custom AI Models for Code 开发针对特定编码工作流程量身定制的 AI 模型,包括意图预测和重新排名,以提高编码效率。
UI/UX Innovation for Programming 专注于 UI/UX 创新,将 AI 融入编程工作流程,增强程序员和代码编辑器之间的交互。
Research in Coding AI 进行研究以突破人工智能在编码领域的界限,旨在创建一个可以最大限度地减少错误并简化复杂编码任务的代码编辑器。

融资情况

时间 融资
2022 年 4 月 1 日 Anysphere从Alameda Research和Heroic Ventures获得 40 万美元种子轮融资
2023 年 10 月 11 日 Anysphere 从 OpenAI 筹集 800 万美元,用于构建 AI 驱动的 IDE
2024 年 7 月 15 日 Anysphere从Andreessen Horowitz和其他3 位投资者处筹集了 6000万美元的A 轮融资
2024 年 7 月 17 日 OpenAI 支持的初创公司 Anysphere 在新一轮融资中筹集 4 亿美元
2024 年 8 月 12 日 Anysphere 在 A 轮融资中筹集了超过 6000 万美元
2024 年 12 月 19 日 Anysphere以 26 亿美元的估值 完成了 从Thrive Capital获得 1 亿美元B 轮融资

Cursor

简介

  • 人工智能优先的代码编辑器,旨在通过集成人工智能来协助编写代码、调试和理解代码库,从而提高编码效率和乐趣。
  • Cursor基于Vs code 开发,是 VS Code 的一个分支。
  • Cursor是一个集成了GPT-4、GPT-4o、Claude 3.5 Sonnet 等先进LLM的编辑器。

官网地址

https://www.cursor.com/

定价

Hobby 版本 Pro 版本 Business版本
免费 $20 / 月 $40 / 月
Pro专业版本试用2周 包含Hobby版本功能 包含Pro版本功能
2000次 代码补全 无限次 代码补全 强制隐私模式
50 次慢速优先的请求 500 次快速优先的请求 集中式账单
无限次 慢速优先的请求 管理员使用情况仪表板
每天10次 o1-mini 模型使用 SAML/OIDC 单点登录

image-20241225094227970

下载地址

https://downloader.cursor.sh/windows/nsis/x64

软件安装

准备

安装包:Cursor Setup 0.44.8 - x64.exe

安装

点击安装包即可安装。

Cursor 配置

首次进入初始化

image-20241225095621737

键盘设置

Keyboard

  • VS Code(默认)
  • Vim
  • Jebrains
  • Sublime
  • Emacs
  • Atom

建议前端选择VS Code, 后端开发选择 Jebrains

语言选择

Language for AI

  • English
  • 中文

多个用英文逗号连接,建议English,中文

Vs Code Extensions

image-20241225101200354

扩展 从VS Code导入扩展、设置和键绑定。 点击下一步即可。

Data Preferences

image-20241225101149879

  • Hepl Improve Curesor 会采集用户操作信息,代码情况等。
  • Privacy Mode 私有模式

建议选择Privacy Mode

登录

image-20241225101134358

  • Login in 登录
  • Sign Up 注册
  • Skip for now 跳过

熟悉可以先跳过登录或注册

Cursor Settings

Genneral

该配置下内容为系统首次进入初始化配置内容。

Account

账号登录

VS code Import

导入 vs code 的扩展、配置、热键绑定

Rules fro AI

AI大模型支持的语言。

Editor

  • 编辑配置
  • 功能快捷键配置
  • 集成控制面板。(Ctrl +Shift +A)

Privacy mode

数据隐私模式,如果开启,您的代码将不会被Cursor 存储。如果关闭,Cursor 可能会保存提示并收集遥测数据以改进Cursor。

  • disabled 禁用
  • enabled 开启

Model Names

支持的模型

image-20241225143503976

features

cursor 中的一些功能、特性、模块。

Beta

测试版本。

Cursort 注册登录

进入注册界面方式

  • 首次进入,初始化最后页面

  • 导航栏 :Cursor Setting -》General -》点击Sign in

  • 导航栏:File -》Preference -》 Cursor Setting -》General -》点击Sign in

注册

点击注册按钮

image-20241225141411923

输入信息

image-20241225141435583

  • fist name
  • last name
  • email

输入内容点击continue。

发送验证码

点击给邮箱发送验证码,收到后填写,并提交。

**注意:**公司ciglobal.cn 邮箱可以注册,接收验证码

注册成功

image-20241225142146498

登录

Cursor Settings 中查看

image-20241225142358729

**注意:**若还是提示没有登录,请重新点击sign in。

Cursor 插件安装

File -》Preferences -》Extensions

中文插件

查找:chinese –install

image-20241225150642947

安装后,提示重启,重启即可。

image-20241225150703240

Cursor 基于Java语言使用

加载文件

文件-》打开文件夹 ;D:\WorkSpace\Coding\Cursor\first

  • 新建Hello.class文件

image-20241225151948865

打开cursor 聊天对话

导航栏-》 查看-》外观-》辅助侧边栏 (ctrl+alt +B)

image-20241225152210912

Chat 功能

  • 问答聊天,可以当作Chat GPT 使用
  • 基于模型 claud-3.5-sonnet

image-20241225152325326

测试

image-20241225152633462

image-20241225152655246

composer 功能

image-20241225152814107

  • 代码生成
  • 基于模型 claud-3.5-sonnet

测试1

提示内容

你是一个Java 高级开发工程师,利用 jdk 8 编写代码。 写一个main方法,调用 remotePage 接口,接口实现如下功能:1.远程请求 @http://www.sasac.gov.cn/n4470048/n29955503/n30994949/n30994982/n31214215/c31363173/content.html 2. 将获取的内容中解析成HTML 格式, 3.打印HTML内容中class 为 zsy_cotitle 对应标签内的所有内容。

image-20241225153417933

生成代码如下

Hello
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.select.Elements;
import java.io.IOException;

public class Hello {
public static void main(String[] args) {
remotePage();
}

public static void remotePage() {
String url = "http://www.sasac.gov.cn/n4470048/n29955503/n30994949/n30994982/n31214215/c31363173/content.html";

try {
// Connect to the URL and get the HTML document
Document doc = Jsoup.connect(url)
.userAgent("Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36")
.get();

// Select elements with class "zsy_cotitle"
Elements elements = doc.getElementsByClass("zsy_cotitle");

// Print the content of each element
if (elements.isEmpty()) {
System.out.println("No elements found with class 'zsy_cotitle'");
} else {
elements.forEach(element -> {
System.out.println("Found content: " + element.text());
});
}

} catch (IOException e) {
System.out.println("Error fetching or parsing the webpage: " + e.getMessage());
e.printStackTrace();
}
}
}
POM
1
2
3
4
5
<dependency>
<groupId>org.jsoup</groupId>
<artifactId>jsoup</artifactId>
<version>1.15.3</version>
</dependency>

分析

  • 问题回答,Cursor识别到是Java 语言,让安装 java 扩展包。
  • 自动识别到建立的Hello.class 文件命名不对,自动在根目录下生成 Hello.java 文件,内容并拷贝进去。
  • 解析用了Jsoup的包,自动创建了Pom文件,。
  • 初步查看核心代码逻辑没有问题。
  • cursor 中暂没配置 maven 环境,导入idea中验证如下。

image-20241225154419608

测试2

提示内容

在HelloWord 中创建 main 方案,打印“hello cursor”。

image-20241225155621131

生成代码如下

1
2
3
4
5
public class HelloWorld {
public static void main(String[] args) {
System.out.println("hello cursor");
}
}

分析

  • 很好的理解需求并生成代码。
  • 这次没有添加语言限制,自动识别,并生成。
  • 给出编译,执行的脚本。

image-20241225162431824

Chat GPT-4对比

测试1

image-20241225163018763

提示内容

生成代码如下

RemotePageFetcher

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
import java.io.InputStreamReader;
import java.io.BufferedReader;
import java.net.HttpURLConnection;
import java.net.URL;
public class RemotePageFetcher {

// main方法调用remotePage接口
public static void main(String[] args) {
try {
String url = "http://www.sasac.gov.cn/n4470048/n29955503/n30994949/n30994982/n31214215/c31363173/content.html";
String htmlContent = fetchHtmlContent(url);
parseAndPrintHtmlContent(htmlContent);
} catch (Exception e) {
e.printStackTrace();
}
}

// 远程请求并获取页面内容
public static String fetchHtmlContent(String urlString) throws Exception {
// 创建URL对象
URL url = new URL(urlString);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("GET");
connection.setConnectTimeout(5000);
connection.setReadTimeout(5000);

// 获取响应内容
BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));
String inputLine;
StringBuilder response = new StringBuilder();

while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();

return response.toString();
}

// 解析HTML并打印class为zsy_cotitle的标签内容
public static void parseAndPrintHtmlContent(String htmlContent) {
// 使用jsoup解析HTML内容
Document document = Jsoup.parse(htmlContent);
// 获取所有class为zsy_cotitle的元素
Elements elements = document.getElementsByClass("zsy_cotitle");
// 打印每个元素的文本内容
for (Element element : elements) {
System.out.println(element.text());
}
}
}

POM

1
2
3
4
5
<dependency>
<groupId>org.jsoup</groupId>
<artifactId>jsoup</artifactId>
<version>1.14.3</version> <!-- 使用适当的版本 -->
</dependency>

对比分析

  • Chat GPT-4 识别到提问的语言是中文,生成中注释及 说明使用的都是中文,相比Cursor,Chat GPT-4更友好
  • Chat GPT-4 使用解析策略同Cursor 一致,使用jsoup组件,就POM文件分析,Cursor 使用版本较高,相对来说能力较强
  • Chat GPT-4 和 Cursor 生成代码质量来看,Cursor 识别到 Jsoup 本身发送请求的功能并使用, Cursor较为智能一些

使用建议

  • 前言

    • 由于时间限制,只对2个场景进行测试,整体效果来看,Cursor确实在自动化编码有较高水平,且不断迭代,未来会更加强大。
  • 建议

    • 公司前端开发人员,大多使用VS Code 编辑器
      • 建议切换cursor使用,兼容VS code。免费版本应该够用。
    • 公司Java 开发人员,大多使用IDEA 编辑
      • 建议IDEA中集成阿里:TONGYI Lingma 通义灵码 ,或集成 字节: MarsCode AI 豆包旗下的智能编程助手 。
      • 建议同时使用Chat GPT-4(免费)结合使用。
      • 建议逐步尝试使用Cursor 开发Java项目,熟悉集成环境、编程习惯,根据个人习惯程度,慢慢选择性替换。