cursor 使用经验分享

cursor 是一款基于 VSCode 的 AI 优先编辑器,如果你还没有体验过它,我强烈建议看完这篇,因为 cursor 真的在改变编程游戏的规则,在了解 cursor 前,可以先思考一下我们日常在编程环节都做哪些事情,我日常开发中,占据绝大多少的是:

1、编写代码

2、测试代码 & 验证效果

3、阅读之前的代码

4、查阅文档(例如:MDN)

5、书写文档

6、review 代码,提交 commit

7、优化代码,重构代码

。。。可能还有一些小的事情,以上所有的事情都可以通过 cursor 来提速,让我们一起看一下 cursor 吧!

它的能力

cursor 帮助我们的基础方式如下:

  • tab 代码补全功能:生成,修复,重构代码
  • 提示框(cmd + k): 生成 or 修改局部(当前文件)代码
  • 聊天(cmd + L / option + command + B):新增功能 ,更广泛代码问题对话的地方
  • @ 符号:它是用来引用一些东西,算是通过关联更重要的上下文来得到更准确的回复

这样来看,我之前使用的通义灵码也都可以,但是它不一样,不一样的地方有:

  1. 交互不一样:它除了有其他产品的补全代码,它还能对当前代码进行修改(理解为 bug 修复,重构代码),它还能预测你的光标要移动到的位置来让你真正沉浸式编程
  2. 模型不一样:它使用目前最强的 Claude 3.5 Sonnet
  3. 感觉不一样:当我们在 VSCode 使用其他工具,会感觉有割裂感,但是 cursor 不会,我会感觉 AI 能力和编辑器融合的很好,这样我们能更加融入AI 编程中,真正实现 AI 结对编程(和 AI 甜蜜双排,从此写代码不孤独)
  4. 生成的结果不一样:最重要的当然是生成的结果,这段使用的时间中,cursor 得到的结果,基本上都是我想要的,偶尔有点小问题,也能很快找到原因手动解决掉

你以为这就完了,这其实才刚刚开始,下面我们看一下 cursor 真正的杀手锏的能力

1)终端对话

对于前端来说,很多 linux 命令,我们不常用,有时候也会使用但总是记不起来,需要查阅文档,在 cursor 中,我们直接在终端按下 cmd + k,就可以唤起对话,描述出要做的事情来询问对应的命令是什么,AI 会帮我们找到命令,然后输入到命令行

image.png

除此之外,我们还可以使用它来生成 commit 信息,先在终端中,输入‘git diff | cat’,获取最近的修改,然后 cmd + k,在提示栏中输入‘git commit message’, Cursor会给你生成一个带 commit message 的 git commit 命令

2)composer(beta 能力,需要开启)

coursor01.png

composer 其实就类似于 bolt.new (一个通过描述生成项目的工具),你给出需求,它会自动创建文件(夹)来实现需求,如何使用请看文档,后面我会使用 composer 能力来做一个项目分享它强大的能力

更详细的请看:cursor101.com/zh/article/…

3)文档能力

在 Cursor Setting > Features >Docs 我们可以添加我们日常使用的文档,例如:mdn 文档,这样我们需要查询文档就不用去游览器,直接在对话框@ 选 Docs 来选择我们要查询的文档

4)code review (beta 能力,需要开启)

image.png

review 目前可能没有那么强大,我的方式是多问几次,三次左右,来保证潜在问题都被 AI 发现,最后自己再 review 一遍

5)强大实用的 @ 符号

无论是单独的对话框还是代码内对话弹窗,我们输入 @ 后就会看到

image.png

6)AI fix

当我们在代码报错后,鼠标移入会有 AI FIx 按钮,或者终端报错,我们选中报错,会有 Add to Chat 按钮,我们可以在对话中进行报错询问

7)预测你的下一步

它会猜你下一步做什么,并且把光标放到合适的位置,让你真正一路 tab

以下是一些还没有体验过的规则:

8)自定义规则 (AI rules)

我们可以在项目根目录新建 .cursorrules 来自定义规则,有一个专门的社区:cursor.directory/,里面有实用的规则,我…

9).cursorignore

类似 .gitignore ,定义不让 cursor 读取的内容,保证安全

使用场景

1)学习源码 、新技术、框架等等

通过 cursor 的超强能力,我们可以拉取一个源码到 cursor 中,渐进的询问当前项目的问题,我们想要询问编程概念问题;获取代码建议和最佳实践;调试和错误排查的时候我们可以通过 cmd + L 唤起对话框来进行连续提问

2)做项目、写项目文档

3)重构代码

4)利于 @ Docs 能力,建立自己的知识索引库

5)写小工具网站,快速想法变为现实,例如:在线工具库,导航网站等等,这对有想法的产品经理来说是福音,他们可以快速把自己想法变成现实

一些 cursor 看法

cursor 目前面临的质疑有:

  1. 面对复杂项目就没有作用了,甚至会把事情变得更加糟糕
  2. cursor 产生的代码质量不高

那 cursor 无论怎么说都是一个工具,它的核心是提高我们的效率。我会它当做成雇的初中级工程师,所以我在让它帮我完成工作前,我肯定会事无巨细的告诉它这个工作如何完成,并且我会通过 @ 文件能力,仅仅把相关的上下文给他,来防止它上下文太大导致回复不准确问题(也就是产生幻觉),所以有三个能力在使用 cursor 非常非常重要:

  1. 提问能力:cursor 核心还是对话,通过 chat 来解决问题,得到我们想要的内容,那么描述清楚问题是一切的基础,推荐阅读《提问的智慧》
  2. 拆解需求能力:要有把复杂问题拆解为简单问题,把大需求分解为小需求的能力,然后清晰描述出小需求给 cursor ,让它每次只做一个小的需求
  3. 有强大的知识储备,解决问题能力:cursor 根据我们提出的问题(描述)生成回复,那我们必须要知道这个东西如何实现,能够清楚描述出来,得到的结果如果有细小的错误,我们自己也能及时发现并修复

哦对了,了解 AI 如何工作也是必备的,这样才能更好的使用 AI,把 AI 当成自己雇佣的开发者,多了解它才能让它发挥最大的作用

所以 cursor 到底能够有多厉害,关键还是在人,高手中的 cursor 和初级开发者手中的 cursor 是两个产品

对比 windsurf

windsurf(风帆冲浪)和 cursor 类似,基于 VSCode 的 AI 编辑器,它是 codeium 下的产品

官网:codeium.com/windsurf

根据官方的描述,它相比较 cursor 在体验上更加流畅,在处理复杂大型项目更加友好,它将流程(flow)作为核心设计理念,提供更连贯的开发体验,个人测试了一下,它在写新功能场景下,使用 Write mode ,它会帮我们更加流畅的创建需要的文件,实现功能。

如果必须做一个选择,那我目前还是会渲染 cursor 的

怎么免费白嫖会员服务

cursor:其实很简单,cursor 新人是有 14 天体验会员,cursor 账号可以使用 Google 账号,那我们就可以在我们体验会员过期后,使用 Google email (mail.google.com/mail/u/0/#i… cursor 会员自由

windsurf(免费领取会员链接:codeium.com/offers?offe… ),它目前在推广阶段,可以免费领取两个月,使用的也是 Claude 3.5 Sonnet 模型

总结

常用技巧(来源网络:x.com/LinearUncle…

cursor_02.webp

cursor 这类的产品真的是颠覆了开发模式,现在我们可以在 cursor 这样的编辑器 all in one,而且我们可以更多的关注业务,减少重复代码工作,那我们节省下的精力就可以:

  • 让我们写出更加规范的代码
  • 让我们研发流程更加规范,如果真正做到每次让 cursor 做一个小需求,然后完成后,我们提交一个 commit,然后提交 pr,这样能避免一个 pr 改动太大的问题
  • 让我们可以有更多时间解决有挑战的事情,提升自己
  • 让我们能够从基础 CRUD 脱离,去思考

如果你真的使用 cursor ,你会发现代码都被 AI 写了,会产生一种完啦,我快要被替代了的感觉,是的,我是这样想的,面对变化最好的变化就是拥抱变化,加入变化,这样才能更好的找到破局的方法,AI 对编程行业真的在进行颠覆性的改变,并且不可阻挡

如果觉有有用,点个赞再走吧,这对我真的很重要,谢谢啦!

参考

Cursor101:cursor101.com/zh/

原文:www.luckysnail.cn/posts/post-…

cursor 使用经验分享,满满干货深入 Cursor AI 编辑器的核心功能与实战经验。从代码补全、终端对话到文档集成 - 掘金

学习 Cursor ,拥抱 AI 编程 | Cursor 101

虚拟信用卡WildCard官方详细注册流程 | 老登AI

【Cursor】合理安装配置Cursor 纵享丝滑Cursor简介 Cursor 是一个基于 VS Code 二次开发的 - 掘金

Cursor简介


Cursor 是一个基于 VS Code 二次开发的 AI****编辑器,它深度集成了AI技术,提升了编程效率和体验。它不仅利用了 VS Code 强大的插件生态系统,还通过AI增强了编辑器的功能。与 GitHub Copilot 等类似产品相比,Cursor 的优势在于其与编辑器的深度集成,它不是简单的附加组件,而是成为了编辑器的一部分,让用户能够更自然、高效地利用智能功能。

安装配置


官网:www.cursor.com

打开官网点击【Download for Free】下载安装

image.png

下载完成后直接双击安装,首次安装需要进行简单配置。

image.png

image.png

配置完成后进入 Cursor 首页

image.png

点击【Continue

image.png

点击【Log In】登录或者【Sign Up】注册,接着就会打开浏览器进行登录授权

image.png

选择 Google 、GitHub 或者邮箱进行授权,授权完成后点击打开 Cursor

image.png

工作区调整


Cursor的默认工具栏为横排,不太符合个人习惯

image.png

Command + ,】打开编辑器设置,搜索【Activity Bar】将 horizontal 改为 vertical

image.png

image.png

这就和 VS Code 一样了。

订阅及产品定价


image.png

image.png

Cursor 新用户注册即可享受 14天 的免费试用期,前两周有 500 次快速 premium 模型使用机会。后续免费套餐每月有50 次慢速 premium 模型使用,200 次 cursor-small 使用。

额度查询


官网:www.cursor.com/settings

image.png

超出额度将不能使用

image.png

image.png

续杯可以参考我的【实用技巧】邮箱无限续杯的正确方式,仅供参考。

本文同步自微信公众号 "程序员小溪" ,这里只是同步,想看及时消息请移步我的公众号,不定时更新我的学习经验。

 

如何使用Cursor提高开发效率1. Cursor介绍 Cursor是一款基于AI的编程助手,可以帮助开发者提高编程效 - 掘金

1. Cursor介绍

Cursor是一款基于AI的编程助手,可以帮助开发者提高编程效率。它支持多种编程语言,包括Python、JavaScript、Java、C#等。Cursor的主要功能包括代码生成、代码补全、代码优化、代码审查等。相比于其他编程助手,Cursor的优点在于它能够根据上下文生成高质量的代码,并且支持多种编程语言。目前各种编程助手很多,比如GitHub Copilot、Cody、Phind、Codeium等等,这些编程助手扩展插件基本都有使用过,个人觉得Cursor在编程过程中交互体验是最好的。其亮点在于可以将生成的代码一键添加到代码编辑器中,这点非常方便。插入的代码以git merge的形式展示,可以很直观的看到代码的改动,而且还可以自行修改再进行Apply,效果如下图: image-1.png

2. 配置Cursor

2.1 配置模型

Cursor支持多种模型,如GPT-4o、gpt-4、gpt-4o-mini、gpt-3.5-turbo、gpt-4-turbo-2024-04-09、claude-3-opus、claude-3.5-sonnet、cursor-fast、cursor-small等,也支持自定义的openai接口规范的模型,需要自己配置api key,并且不支持tab自动补全,智能提示,一键应用等功能,也就只是一个传统的VSCode的AI辅助编程扩展。 image.png

2.2 CodeBase索引

Cursor支持CodeBase索引,可以将项目中的文件添加到CodeBase中,这样Cursor就可以根据CodeBase中的内容生成更准确的代码。CodeBase索引可以帮助Cursor更好地理解项目结构和代码,从而生成更准确和统一风格的代码。 image-2.png 在大的项目中可能会存在同步不及时,导致生成的代码仍然使用的是旧的文件,如果遇到这种情况,可以尝试手动同步。

2.3 配置rules文件

Cursor支持配置自定义rules文件,相当于预置一个上下文来规范来让AI生成更准确的代码。比如可以告诉AI当前项目使用了哪些技术栈,应该遵守哪些开发规范,以及面对用户的问题应该如何一步步进行思考,甚至定义一些自定义的指令,这样AI生成的代码就会更准确也更符合项目需求。如下面这个用于开发uni-app的rules文件:

 
vbnet
代码解读
复制代码
You are an expert in Vue3, uv-ui, z-paging and uni-app.

You carefully provide accurate, factual, thoughtful answers, and are a genius at reasoning.

Key Principles:
- Follow the user's requirements carefully and to the letter.
- First think step-by-step and describe your plan for what to build in pseudocode, written out in great detail.
- If you are trying to use uv-ui or uni-app components, please search the component name in the corresponding documentation to make sure it is supported.
- Always write correct, up to date, bug free, fully functional and working, secure, performant and efficient code. Always use Vue3 script setup syntax to implement.
- Focus on readability over being performant.
- Prioritize error handling: handle errors and edge cases early
- Use early returns and guard clauses
- Implement proper error logging and user-friendly messages
- Fully implement all requested functionality.
- Leave NO todo's, placeholders or missing pieces.
- Be sure to reference file names.
- Be concise. Minimize any other prose.
- If you think there might not be a correct answer, you say so. If you do not know the answer, say so instead of guessing.

Custom commands:
- /setup: convert the current file to script setup syntax.
- /img2code: convert the current image to code.
- /zp-list: implement page list with z-paging.

首先,告诉AI当前项目的技术栈,然后定义一些开发原则和思考步骤,最后定义一些自定义命令,这样AI在生成代码时就会遵循这些原则和命令。网上有很多大佬分享的rules文件,可以参考学习Cursor Directory

2.4 配置文档数据

Cursor支持配置文档数据,实现RAG(Retrieval Augmented Generation),目前好像只支持URL数据源,如: image-3.png

填入URL后,点击Add,Cursor会自动解析文档路径,添加路径前缀(一般是去掉最后一个/后面的路径),当然也可以手动修改。 image-4.png 目前测试下来,在线文档的页面需要是静态页面,这样Cursor才能解析到文档内容。如果是单页应用,基本上就没办法解析了。 添加完成后可以重命名、删除、编辑、查看索引状态。 image-5.png 配置好文档数据并索引完成后,就可以在对话的过程中使用@Docs命令来指定文档内容了。

3. 使用Cursor

Cursor在编程过程有下面几种交互方式:

  1. 编辑指定代码块
  2. 以对话的形式编辑当前打开的文件
  3. 使用Composer以对话的形式进行多文件编辑/创建

3.1 编辑指定代码块

在编辑器中选中代码块后,Cursor 会显示两个按钮,一个是Chat,一个是Edit。 image-6.png 点击Chat按钮,会以侧边栏对话的形式编辑当前代码块。 点击Edit按钮,会在选中代码上方出现一个输入框,输入指令后会直接编辑当前代码块。

3.2 以对话的形式编辑当前打开的文件

点击右上角的Chat按钮或者使用快捷键Ctrl/⌘ + L,会在侧边栏打开一个对话窗口,可以在对话框中输入指令,AI会根据指令生成代码。 image-8.png 你可以选择应用(Apply)、复制(Copy)或者追问(Ask)生成的代码。在实际使用的过程中,Apply功能使用的频率最高,可以一键将生成的代码应用到当前文件中。如果应用保存后的代码有问题,可以直接Ctrl+Z撤销,回退到Apply状态,然后继续修改或者直接全部拒绝。

3.3 使用Composer的形式进行多文件编辑/创建

Composer是Cursor中非常强大的一个功能,前面两种辅助编程方式只能针对单个已存在的文件进行修改,并不能自动创建文件。而使用Composer则可以以对话的形式进行多文件编辑/创建。可以看作是一个junior developer,可以帮你创建文件,修改文件,甚至创建整个项目。而用户则更像是一个产品经理,只需要提出需求,然后等待结果并进行验证,并持续迭代。 image-9.png

4. 总结

Cursor是一款非常强大的编程助手,可以帮助开发者提高编程效率。通过使用Cursor,开发者可以快速生成高质量的代码,并且可以节省大量的时间。使用了两周下来,目前至少能提高一倍左右的编程效率是不在话下的。不过目前Cursor在处理中文方面还存在一些问题在没有明确指定输出语言的情况下,回复有时候是中文,有时候是英文。当然这些可以通过前面提到的rules文件进行配置。还有就是在对话的过程中,自己对Apply中的代码进行修改应用后,Cursor后续的回复的代码仍是基于对话中Apply的代码,这样就容易导致之前自己对代码的修改会被覆盖。解决办法是重新开一个对话窗口,在新的对话窗口中进行代码的修改。以上就是我使用Cursor两周以来的总结,希望对大家有所帮助。当然Cursor还有一些其他比较强大的功能,如Review,终端提示辅助等。限于篇幅,就不一一介绍了。如果你有更好的使用技巧,欢迎在评论区分享。

cursor 让程序员体验当甲方爸爸的快乐如果你还没用过最近爆火的 cursor,一款可以完成小型项目开发的ai工具。那 - 掘金

最近刷屏的 cursor 大家都用了吗?

有人说,cursor 与 copilot 最大的区别是,copilot 是给程序员用的,cursor 是给产品经理用的。

然而,我要说的是,用 cursor 的程序员也能当甲方爸爸了。我们程序员不应该排斥这么好用的工具。😊

安装与使用

cursor 安装比较简单,官网下载安装即可。

因为 cursor 其实 fork 了 VS Code 的代码做的修改,所以,它支持了 VS Code 所有的功能,安装的时候,会问你是否复制 VS Code 的配置项,选择“是”即可。这个操作,会把你在 VS Code 的设置、插件等都迁移过来。

如果你之前没有使用 VS Code,那可以在插件市场下载“Chinese ...” 语言包,安装后重启,界面就是中文了。比较遗憾的是,还有很多地方还是没有翻译成中文的。只不过,这都不影响你用中文给 cursor 提需求。

截屏2024-09-25 10.17.55.png

插件排列跟 VSCode 略有不同,只能在下拉菜单中显示,略有不便。

截屏2024-09-25 10.24.36.png

安装完成之后,会有 Welcome 的任务,跟着做一遍,就能立马用上它的 ai 功能了。

截屏2024-09-25 10.25.28.png

  • tab 接受 ai 自动填充的内容
  • 选中内容,ctrl + K 可以让 ai 编辑内容
  • 选中内容,ctrl + L 可以与 ai 对话
  • 对话可以针对整个代码仓库进行

动动嘴就能完成需求

以上都是其他插件都有的功能,但是 cursor 最有特色的是它的 composer 功能。也就是我们能成为甲方爸爸的利器。

ctrl + I,即可调起 composer。如果发现没有响应,需要在 cursor 设置项中,将 composer 开启。

截屏2024-09-25 10.27.18.png

模型选择,使用推荐的 claude 3.5-sonnet 即可,目前来看,国内使用也没有任何问题。

一切准备就绪,现在你就可以穿上正装,打上领带,好好享受甲方爸爸的身份了。

假设现在要开发一个“浪码科技” 的公司网站,甚至作为甲方爸爸,你一点思路都没有。这个时候,你就跟它说,“不要写代码,先给我一点思路。”

于是它哼哧哼哧地给你把思路整理出来了。这思路的确十分完整,可用性也高。但是作为甲方爸爸,也不能动不动就夸它,给它来一句“还行吧。要不你先开始,有问题我们再沟通。”

截屏2024-09-30 11.49.14.png

它毫无怨言,又一顿操作,代码也给你写出来了。对比其他编程助手,cursor 能生成文件、文件夹,而且在做这些之前,它会给你生成项目架构,然后按架构实现你的功能。

截屏2024-09-30 11.48.11.png

代码写完,作为甲方爸爸,在你什么都不懂的时候,你直接叫它跑起来,cursor 会一步步指引你完成依赖包安装、检查文件、命令行操作。真够细心的。

截屏2024-09-30 11.43.08.png

甚至,你懒得多次 npm init/npm install ,也可以让它把依赖包 package.json 写好,自己再操作都行。(就差它自己操作命令行了~)

就跟现实生活一样,项目肯定不可能一次就生成好。所以,多轮对话功能还是很重要的,cursor 的多轮对话体验真的太好了。

cursor 写完代码后,整个项目极大可能第一次运行不起来。程序员看代码的习惯就要来了。但是,稍等,你现在是甲方爸爸,直接跟它说“请修复”

它就会给你道歉/道谢,然后开始排查问题,排查问题之后,再将代码修改。全过程不需要你动一次手。

截屏2024-09-30 11.42.25.png

修改完代码,像 git 提交时一样,把代码前后的不同列出来,让你 review,让你再体验一把在甲方爸爸当架构师的感觉。

确定了可以点击 Accept / Accept all。生成得不对,可以 reject 。

截屏2024-09-30 11.55.28.png

当然,我们是甲方爸爸,也不一定要出动架构师,无脑 accept all,出了问题再告诉它也是很好的选择。甚至控制台显示的问题,你都不用复制,它也能排查出问题。

最后,发现公司 logo 还没做,这一时半会的也找不到人设计,那怎么办?作为甲方爸爸,当然是有困难提出困难,没有困难,也要制造困难。那,就让这个代码仔给你画出来吧。

截屏2024-09-30 11.57.24.png

文案你也不会写,还是一样,让这个代码仔给你写 1000 字的公司介绍内容。

截屏2024-09-30 11.59.34.png

再让 cursor 调整一下样式,帮你换上从其他 ai 那里做的 背景图。

大功告成!

看看最后的页面,还真不赖。

浪码科技主页 浪码科技,关于我们页面

从此,世界上又多了一位和蔼可亲的甲方爸爸,少了一个备受折磨的代码仔。

功能测试

甲方爸爸做完,是不是很爽。但是这几天的深度使用下来,还是有不太好的地方。

以下是我个人做的不太正规、不太客观的一些测试及评分。

新建简单静态站点 🌟🌟🌟🌟🌟

因为现代框架 react、vue 等,都有组件化、模块化的思想,代码要做拆分;但是拆分之后,对 AI 来说,就要做跨文件来阅读了。所以在不使用框架来创建页面的情况下,得到的代码般来说都很好。

新建项目 demo 🌟🌟🌟🌟

同样,在使用了现代框架 react、vue 的情况下,一开始整体项目的开发体验,还是很不错的。

但随着 cursor 的 composer 里面引用的内容越多,复杂度越高,相应的得到的结果成功率就会低很多。

新建复杂项目 🌟🌟🌟

demo 做完之后,再基于这个 demo 做复杂项目,出现的问题就多了。

比如,我需要将tab 页从页面上方移到页面下方,样式需要做调整。对于普通程序员来说,这是一个很简单的效果,结果跟 AI 对话了三次,才正确做出来。

还有就是有一些逻辑,死活调试不正常。多次提问也没有很正确的回答。

另外,使用第三方插件,代码不一定准确。即使我提供了网址,最后也可能需要多次问答才能有较正确的回答。而且,还有可能本来好好的,改坏了,在一些不应该修改的地方做了修改。换而言之,即是说 AI 提供的答案依然不稳定。

老项目改造 🌟🌟

我尝试将老项目使用原声 js 写的内容,替换成一个插件,结果出错。出错之后,多次对话,仍未解决。最后不得不放弃了。所以这一块分数较低。

打包工具改造 🌟🌟🌟🌟

我尝试将一个 gulp 的打包的项目,更新为 vite 打包,三句话就搞定了,还是很顺畅的。所以给四颗星。

不过这个项目比较简单,也许后续可以使用更复杂的项目做尝试。

总结

经过这番操作,说说我理解的 cursor composer 原理。

composer 应该是一个智能体(AI Agent),其实由一个主 AI 和 多个子 AI 来进行开发:

  • 主 AI 负责需求理解,分配任务,相当于产品经理、架构师;
  • 子 AI 负责写代码,就是我们一个个具体的开发人员了。

截屏2024-09-30 12.08.25.png

由于 cursor 需要对多个 AI 进行控制,所以整体的费用是远高于 copilot 的。

如我之前所言,代码助手还需要一定的时间成熟。

cursor 这个交互让大家都非常兴奋,目前做出来的成品也不错。但是对于真正的复杂项目而言,依然有些鸡肋。一旦涉及到跨多个组件的就会有问题。而且是越到项目后期,可能越难得到想要的代码。

总之,还有不少进步空间,期待 cursor 的下一次大更新。

Cursor 一个真正让程序员产生危机感的 AI 编程工具https://www.cursor.com/ 起初 最开始接 - 掘金

www.cursor.com/

起初

最开始接触 cursor 的时候是在去年年初,openAI ChatGPT 带火了一批 AI 概念产品。GitHub 的 Copilot 自不用说,很早就在使用,有了大模型的加持当时也是如日中天。 我记得 cursor 当时主打的点是:

  1. 可以无逢迁移 vscode ,vscode 的所有插件可以直接一键转移到 cursor。连界面都一模一样

  2. 轻巧、快速。体量小,启动快,编程效率高

  3. 可用免费的 AI 模型进行提示。

当时体验下来发现也确实如宣传所说,是挺快,但是没有那么强的吸引力让我愿意换 vscode 和 idea 。我使用最多的还是 vscode+idea+copilot+chatgpt 。基本上满足我日常开发的需求了。当然后来又加上了 warp

现在

最近我又体验了一下 cursor ,发现它和原来的版本有很大的不同。而这一次,彻底改变了对它的看法。目前我已将编程工具切换到了 cursor,很心甘情愿的切换了过去。

原理

先说最重要的,一切事情有困就有果,有果就有因,cursor 好用的功能有很多,但最重要的我认为只有一个。关于这个功能,我要说明一下它的原理。

其实市面上的 AI 编程助手类工具不止一个,比较好用的有:

  • github 的 copilot
  • 字节豆包的 marscode
  • 阿里的 通义灵码

大家都知道,这些工具背后是各家的 LLM ,提示质量的高低主要取决于这些大模型的能力。而所有的工具都只是基于当前文件的。无论是代码解释、优化、生成注释,都是基于当前文件的内容,无论是针对文件、类、方法。你对代码提问的 codeBase 是单文件,上下文自然也是当前打开的这个单文件。

这就是现在的这些 AI 编程工具的运行逻辑,从当前文件中获得代码的上下文再结合你的提问(prompt),一起发给 LLM,最后得到结果。其实这已经能解决不少问题了,在没有 cursor 之前感觉很不错,写程序确实能提高效率。

我们觉得上面那些工具很不错是因为我们没有用过更好的工具:

  • cursor 的 codeBase 是整个工程
  • cursor 的 codeBase 是整个工程
  • cursor 的 codeBase 是整个工程

可能有的伙伴看到这几个字立刻就懂我是什么意思了,对,就是那个你越想越激动的事情。

cursor 的逻辑是,先将工程内的所有代码进行索引和向量化(Embedding),再之后你的所有提问都是基于整个工程给你答案,它会将你的提问结合整个工程的代码一起提交给 LLM,默认有这些模型:

注意这里不包含 deepseek-coder,那是我自己添加的。

这很像基于 RAG 方法论的系统实现,只不过外挂的知识库是代码库而已。

这就是我认为最重要的功能,我说清楚了它的逻辑,接下来我们来说基于这个功能能做什么,这才是最激动人心的部分

能解决的问题

代码补全

之前工具的代码补全虽然使用了 LLM,但仍然不那么精准,因为它只能把当前文件作为上下文,而 cursor,它的 codeBase 是基于整个工程的,它的代码补全相当于是分析了你整个工程的代码基础之上给的建议,那是正当的精准啊。这也就是为什么有的朋友说,现在用 cursor 写程序一路 tab 下来就完事儿了,比自己写的还好。简直就是自动化编程。

智能纠错

这代码你就放心写吧,如果你写着写着写错了,cursor 会在你输入的时候自动纠正你的错误 

它为啥能纠错,它怎么知道我写错了? 对,还是 codeBase,你的整个工程它都了如指掌。

聊天

太基础的功能了,然而因为 codebase,它就有了无限可能。首先,你可以在当前文件中针对某一部分来提问,比如你要重构一个方法什么的

它会重构的比较好,因为它的 codebase 是整个工程。

你也可以单独打开一个聊天窗口

在这里提问可以仅针对当前文件、文件夹、图片、文档、网络或者整个 codebase

最重要就是这个 Codebase 这是可以发挥无限想像的地方。

由于篇幅的原因,我不会把所有的细节全部用图片或视频的形式放出来,因为太多了,但你看我的描述也一定能体会到 cursor 的强大,这里我举几个例子,这些例子我已经测试成功并且在工作中使用了,它很强,很实用:

  1. 我是项目主要的开发者,我现在想针对某个功能进行重构,注意不是一个类,一个文件,而是整个功能的重构。我让 cursor 给出我具体的建议和修改的代码。它实现了,非常具体、清晰、详细、正确率高达 95 % 以上(claude 模型)
  2. 我有一个陈旧的项目,代码中几乎没有注释,也没有接口文档。我现在想从代码中分析出一份 api 接口文档,要包括地址、请求类型、请求和响应字段,以及示例 json。 它也实现了,就是我想要的内容,100% 正确
  3. 我有一个小白同事,刚进项目组,对他要负责的功能模块完全不知道流程是什么,不巧的是整个项目也没有什么文档,需要他去看代码自己梳理。他让 cursor 帮他梳理出项目中有关 oauth2 认证、鉴权的完整流程。从第一个请求开始,到最后一个请求数据返回,包括所有相关的代码片段和执行路径。cursor 瞬间完成了,正确率 100%
  4. 我有一个测试同事,想写关于某个重要模块的测试用例及测试报告,cursor 基于整个项目的 codebase 帮他一步一步实现了。
  5. 我有个前端同事上传了一张别人设计的不错的界面的图片,他让 cursor 帮他根据他 vue2 项目的情况自动生成页面代码,cursor 瞬间完成了,和图片的相似度达到 85%
  6. 我有个大数据开发同事,他正在重构之前写的 SQL,他把建表语句告诉 cursor 后,让他把一批 sql文件根据他的要求进行了重构,cursor 很快就完成了。
  7. 我有个运维同事,他之前把所有运维的工作全部代码化了。在一个仓库里,现在基础设施有一些变动,他让 cursor 根据现有的运维脚本和代码进行重构,cursor 瞬间就完成了,正确率 90%
  8. 我还有个产品同事,现在不怎么用 Axure 画原型了,他说和 cursor 交流一下基础上就能出前端代码,跟前端学了点儿基础知识,原型几分钟就搞定了。
  9. 我有个朋友,现在想将 .net 项目转成 java,他原先估计要组一个团队至少 5 个后端一起干,现在他一个人正在一步一步地用 cursor 帮助他实现。
  10. 我还有个朋友。。。。。

我想你应该知道我想说什么了,我想你也知道 cursor 为什么足以让我兴奋了。而所有的这些原因,都是因为它最重要的原理,它的 codebase,它和其他产品不一样的逻辑。

cursor 当然还有一些其他功能我没有介绍到,不过那都不重要,你已经知道了它的逻辑,它的核心原理和功能,剩下的就交给你了,交给你的想象力和创造力了。

优点和缺点

以上的内容怎么看都是 cursor 的优点,然而在阅读的过程中你一定想到它还有许多令人担心的问题,没错。首先就是数据安全。虽然 cursor 官方宣称数据是保存在本地的,不会被上传,但是我知道你一定担心。这是个有意思的问题,因为关于这一点无论对方如何承诺你都不会轻信,隐私和方便它永远是问题的两端,我们不可能全都要,所以要做个取舍。

然后就是价格,cursor 前两周是免费使用的,然后再用就要收费了,怎么收费呢?

我说一下重点,如果你使用 cursor 是包含两部分费用的,一部分是软件的费用,这部分比如一个月 20$ 是付给 cursor 的,另一部分是模型的使用费用,这个是你付给像 openAI 这样的模型提供商的。那么加起来可能一个月你至少有 30$ 以上的成本。不过关于模型这部分,因为 cursor 可以添加 deepseek 的 coder 模型,所以模型使用成本算是打下来了,因为 deepseek 模型的 API 是白菜价

不但是白菜价,首次注册人家还送 500万 tokens

总结来说,除了优点都是缺点,包括:

  • 成本不低
  • 数据安全

这两点加起来对很多人来说就望而却步了,当然还要解决网络的问题。不过我觉得国内的公司一定不会坐以待毙,一定很快就会有类似的产品上线了,到时候网络就不是问题了。

未来

正如我标题所写,因为看到了 cursor,这次我真的觉得程序员有危机了,尤其是对于初级的、新手程序员。因为我用工具虽然可能有一点点错误,但它可以瞬间完成一些基础的工作,完全可以替代人了,我不需要招那么多人来干那些 “脏活累活” ,我只需要几个高级并且会使用高级工具的人才就可以了,他们创造的人效是原来的 10 倍以上。

再进一步,自动化编程可以期待了吗? 也就是提一个描述得很清晰的需求给 AI,他能自动把程序写好,有公司正在做:www.cognition.ai/ 原先我觉得他在吹牛,现在,尤其是使用了 cursor 后,我觉得可能不远了。

思考

我在最近几年思考了一个问题,很多企业没有业务知识库,就算是有,文档也不全,也不及时更新,这个所谓的企业内部的业务知识库也是名存实亡。那如果需要了解业务的时候怎么办? 比如需要大版本更新,重大业务调整的时候,怎么办呢? 找开发看代码是最准的了,然后这些辛苦的工作又 TMD 转到开发这儿来了。

我想来想去,感觉没有什么非常好的解法。虽然可以用 RAG 来解决一部分的问题,但没有完全解决,因为只要文档不是最新的,文档有问题,一切基于知识库的分析全都是错的。直到 cursor 出现了,我觉得问题可以以另外一种方式来解决了。因为代码是准的,代码就是错那也是代码的 bug。但它是准的,代码写错了,也是准的。代码什么样线上就是什么样,业务就是什么样。

那么整个企业的业务知识就已经在代码里了,只需要从代码仓库提炼就可以了,我们借助 cursor 或者以后什么其他类似的工具再加工一下就完成可以提炼出准确、实时、可用的企业业务知识了。而这个 “知识” 才是企业真正的业务资产。代码就算没了,根据业务重建都可以,反过来,如果你对业务不了解,给你代码也没用。

posted @ 2025-04-17 10:17  CharyGao  阅读(3311)  评论(0)    收藏  举报