Cursor 全自动代码生成器你还没用过?接下来我就来介绍智能 AI 代码生成工具 Cursor 安装和使用
一、概述
前言
从年中cursor开源以来,逐渐火遍全网,成为编程的又一更强力助手,在亲身使用了三个月后写下该教程,供广大开发者参考,cursor的使用十分简单,看完你会了解到集成了先进LLM的cursor在编程方面的强大。
cursor是什么?
cursor是一个集成了GPT4、Claude 3.5等先进LLM的类vscode的编译器,可以理解为在vscode中集成了AI辅助编程助手,从下图中的页面可以看出cursor的布局和vscode基本一致,并且cursor的使用操作也和vscode一致,包括extension下载、配置、远程服务器连接和settings等,如果你是资深vscode用户,那么恭喜你可以直接无缝衔接cursor。
二、安装 cursor
官网地址:www.cursor.so/
支持 Mac 、Windows 和 Linux 操作系统,根据自己电脑的系统进行下载。
安装破解教程请参考第一期:
【有道云笔记】【第一期】AI代码生成超全指南:cursor安装破解前言 在当今数字化浪潮汹涌澎湃的时代,人工智能(AI)已成为推动科技 - 掘金 note.youdao.com/s/NZh121vH
三、核心功能
cursor最常用的快捷键就四个,非常好记:
Tab:自动填充
Ctrl+K:自动生成代码
Ctrl+L:回答用户关于代码和整个项目的问题,也可以编辑代码(功能最全面)
Ctrl+I:编辑整个项目代码(跨文件编辑代码)
核心功能1: Tab自动填充
首先介绍Tab快捷键的使用,如果cursor补全代码,使用Tab键接受即可。
按下Tab键:
这个功能是很智能的,比如我们在下面的文字前加上1.
:
然后再把鼠标移到第二行,可以发现cursor已经推理出了我们在第二行想要加2.
后面我们只需要一直按tab,他就能帮我们写完所有想改的地方
核心功能2:Ctrl+K 自动生成代码
接下来介绍Ctrl+K的使用,使用方式主要分为两种:
从0到1编写代码
修改已有代码
(也可以选中整个文件的代码,让Cursor帮你生成详细的代码注释哦)
1. 从 0 到 1 编写代码
随便找一个空白区域按下Ctrl+K唤出编辑框,选择模型,输入需求开始生成,生成后点击Accept或或Reject接受或拒绝。 使用 Ctrl + k 输入想让它生成怎样的代码
注意:如果代码生成一半终止,可以重新呼出对话框,输入 “继续” 即可。
2. 修改已有代码
选中已有代码按下Ctrl+K唤出编辑框,选择模型,输入需求开始编辑,生成后点击Accept或或Reject接受或拒绝,也可以点击代码行最右侧进行单行代码的Accept或Reject。
核心功能3:回答用户关于代码和整个项目的问题,也可以编辑代码(功能最全面)
接下来介绍Ctrl+L的使用,这个快捷键非常强大,可以编辑代码、智能问答,其中智能问答可以针对选中代码、整个代码文件和整个项目进行问答。
同样选中一块区域按下Ctrl+L,右侧会显示问答界面,针对选中的区域进行提问,同时也可以提出代码编辑要求,然后会给出修改后的代码(和Ctrl+K类似)。
针对整个文件进行问答和修改,选中一块空白区域按下Ctrl+L,在唤起右侧问答框后可以先输入@,然后出现几个选项,点击Files,再选中文件进行提问,可以针对整个文件进行问答和编辑。
另一个入口是,在网页右上角找到COMPOSER,在这里输入你想做的更改。
在这里可以选要调用的模型,一般推荐gpt-4o或claude-3.5-sonnet(免费账号有使用次数限制)
我这里输入一套修改指令
在文件 【/basic/schoolcanteeninfo/SchoolCanteenInfoList、/basic/canteenspecialaccountinfo/CanteenSpecialAccountInfoList、/newfoodmanagement/procurementstatistics/ProcurementStatisticsList、newfoodmanagement/instoragestatistics/InStorageStatisticsList、/financialmanagement/outstoragestatistics/OutStorageStatisticsList、/consumptionmanagement/consumptionstatistics/ConsumptionStatisticsList、/consumptionmanagement/consumptionreconciliation/ConsumptionReconciliationList、/consumptionmanagement/rechargestatistics/RechargeStatisticsList】 中,
点击详情需要改成使用新组件的详情弹窗,修改如下: 【 import { mixinDevice } from '@/utils/mixin' import { JeecgListMixin } from '@/mixins/JeecgListMixin' import NewStudentRegistrationParentStudentInfoModal from './modules/NewStudentRegistrationParentStudentInfoModal' import CommonDetailFormModal from '@comp/project/detail/CommonDetailFormModal.vue' import { DetailListMixin } from '@/mixins/DetailListMixin' export default { name: 'NewStudentRegistrationParentStudentInfoList', mixins: [JeecgListMixin, mixinDevice, DetailListMixin], 】
在下面会生成出所有的更改文件,点击文件可以看他是怎么改的,确认没问题了点击Accept all
就能更新。
核心功能4:项目的全自动开发
Ctrl+i由于过于强大,所以想单独在这里介绍,Ctrl+i是专为整个项目设计的,可以通过和模型对话来开发整个项目,过程就和聊天差不多,在会话中可以帮助你创建文件、删除文件、同时编辑多个文件等功能。使用Ctrl+i需要打开设置中的按钮:
我是准备了一个空白项目,随意点击一块空白区域,按下Ctrl+i来唤起聊天框开始进行多轮对话。
让他写一个贪吃蛇游戏,点击Accept all直接应用。
第一轮对话,创建了js文件。
第二轮对话,创建了html文件。
效果:
第三轮对话,加入分数,开始游戏和结束游戏按钮。
效果:
如果想看更复杂的项目构建案例,可以到下面这个网址:
核心功能5.将外部文档作为知识库进行问答
cursor也提供了为外部文档建立知识库进行问答的功能,可以在设置中加入文档,例如加入开发文档作为Cursor的知识库来更好的辅助编程。
加入文档之后,使用文档进行提问的方式和单个文件一样,使用Ctrl+L唤起对话框,然后输入@,点击docs选择添加好的文档即可。
核心功能6.加入内置System prompt
经常写prompt的小伙伴一定知道System prompt的作用,可以帮助大模型更好的了解自己的职责和用户的行为习惯,从而更精确的回答问题。在设置中添加Rules for AI添加System prompt
具体的prompt如下:
# Role
你是一名极其优秀具有20年经验的产品经理和精通所有编程语言的工程师。与你交流的用户是不懂代码的初中生,不善于表达产品和代码需求。你的工作对用户来说非常重要,完成后将获得10000美元奖励。# Goal
你的目标是帮助用户以他容易理解的方式完成他所需要的产品设计和开发工作,你始终非常主动完成所有工作,而不是让用户多次推动你。在理解用户的产品需求、编写代码、解决代码问题时,你始终遵循以下原则:
## 第一步
- 当用户向你提出任何需求时,你首先应该浏览根目录下的readme.md文件和所有代码文档,理解这个项目的目标、架构、实现方式等。如果还没有readme文件,你应该创建,这个文件将作为用户使用你提供的所有功能的说明书,以及你对项目内容的规划。因此你需要在readme.md文件中清晰描述所有功能的用途、使用方法、参数说明、返回值说明等,确保用户可以轻松理解和使用这些功能。## 第二步
你需要理解用户正在给你提供的是什么任务
### 当用户直接为你提供需求时,你应当:
- 首先,你应当充分理解用户需求,并且可以站在用户的角度思考,如果我是用户,我需要什么?
- 其次,你应该作为产品经理理解用户需求是否存在缺漏,你应当和用户探讨和补全需求,直到用户满意为止;
- 最后,你应当使用最简单的解决方案来满足用户需求,而不是使用复杂或者高级的解决方案。### 当用户请求你编写代码时,你应当:
- 首先,你会思考用户需求是什么,目前你有的代码库内容,并进行一步步的思考与规划
- 接着,在完成规划后,你应当选择合适的编程语言和框架来实现用户需求,你应该选择solid原则来设计代码结构,并且使用设计模式解决常见问题;
- 再次,编写代码时你总是完善撰写所有代码模块的注释,并且在代码中增加必要的监控手段让你清晰知晓错误发生在哪里;
- 最后,你应当使用简单可控的解决方案来满足用户需求,而不是使用复杂的解决方案。### 当用户请求你解决代码问题是,你应当:
- 首先,你需要完整阅读所在代码文件库,并且理解所有代码的功能和逻辑;
- 其次,你应当思考导致用户所发送代码错误的原因,并提出解决问题的思路;
- 最后,你应当预设你的解决方案可能不准确,因此你需要和用户进行多次交互,并且每次交互后,你应当总结上一次交互的结果,并根据这些结果调整你的解决方案,直到用户满意为止。## 第三步
在完成用户要求的任务后,你应该对改成任务完成的步骤进行反思,思考项目可能存在的问题和改进方式,并更新在readme.md文件中
7.Chat聊天
Chat就是你平常用的网页版的大模型,他和Composer不同,不会直接修改你的代码,适合于先了解自己的需求。
8.更详细的使用方法
以上介绍的使用技巧足够你应付所有的开发需求,如果你对Cursor很感兴趣,可以参考以下网站进行更多了解
其中@用法是最重要的,重点提几个要点:
① @加文档地址
,加提问内容,能让大模型根据最新的文档来回答你的问题。
②@Web
,能让大模型搜索,充当百度的角色。
③@Notepad
,笔记,充当上下文记录。
④@Git
,获取Git 相关的上下文信息,可以非常方便的对代码进行审查、优化、bug 修复:
常用的用法是:PR(Diff of Main Branch):比较当前分支与主分支的 diff
四、AI能做什么
1.造数据
把数据的生成规则讲清楚,能很快地当mock用。
2.调试bug
cursor能读懂你的代码上下文,能更快找到你代码中的问题。
3.生成代码
生成方法详见上面的内容。
4.自动修改有固定修改逻辑的代码【体力活】
你可以把大模型当成实习生,不吃饭不睡觉不拿工资,只要你的沟通能力够好,能把事情讲清楚,他的价值就是很客观的。
5.生成测试用例
通过需求生成测试点
- 下面是向AI发出指令的模板:
注意:由于AI回复的字数有限制,建议对需求进行分块分类型,然后分批生成测试点。
我是一名移动端软件测试工程师,下面这份需求帮我输出一份测试点,(或 每条测试点需要输出正向和逆向的用例):
需求名称:需求名称
需求说明:需求说明
输出要求:将测试点分为触发条件、触发时机、样式、功能逻辑、异常处理几个模块,并且新增一列,表明所属的模块。(如果是非页面性的功能,使用触发条件、触发时机,如果是页面、弹框等,使用展示条件、展示时机)
输出格式:表格,分为序号、所属模块、测试点,总共三列。
-
以下图注册弹框的需求为例,使用的AI是newbing
- 按照模板编辑后,黏贴到newbing并发送
- 输出的结果如下
- 按照模板编辑后,黏贴到newbing并发送
五、技巧思路
- 避免Ai幻觉: 每次让Ai复述需求再做答复
- 避免代码屎山: 先Chat,后Composer,因为Composer会直接改你的代码,所以先Chat搞清楚需求再用Composer改代码, 例:想要实现什么?实现的技术方案有哪些?它们的优缺点是什么?我该如何选择?怎么安装/发布?
- 先Save All,再检查,后Accept aLL,不满意可以reject。
另外再顶部点击restore按钮,就可以回滚到回答之前的代码:
- 根据问题,积累提示词模板,即可在不同项目快速处理相同的问题。
六、如何白嫖
一个邮箱账号可以免费用14天,过期以后,搜临时邮箱不停注册账号即可。但是最新的cursor做了指纹校验,同一个设备使用多个账号会被封,如果换了几次账号后被限制了,网上搜解限制脚本即可。