AI IDE Cursor使用体验为何如此出众
前段时间使用Cursor开发了个web应用,短短5天内,使用非熟练技术栈,实现了Oauth登录、产品管理、环境管理、用户与产品访问控制、自动检测环境版本、定时检测环境版本、API Server、访问记录、Docker构建部署等功能,达到了功能可用、主体页面视觉尚可的标准。
在开发过程中,深刻感受到Cursor带来的开发效率提升,以及其出众的开发体验。
使用
Cursor IDE 可在官网免费下载,下载安装后登录帐号后即可开始免费使用。新注册用户可享受2周的Pro版本功能。Pro版本,核心的区别是能够使用perium模型,如claude、gpt 4o、o1-preveiw、o1-mini模型。
免费用户仅能使用cursor-small模型,由于cursor-samll模型负载很高,基本调用不上,效果如何不清楚。
chatGPT在国内无法直接访问,Cursor提供了一种访问途径,除此之外居然还能用上o1模型,真让人想不到。
Cursor IDE基于VSCode开发,支持一键导入VSCode插件,对于开发者迁移IDE非常友好。
Cursor核心能力
简单试用Cursor就能发现,Cursor将AI功能整合到了编辑器的各个模块当中,这种融合体验无法通过VSCode插件实现。Cursor核心功能如下。
强大的Chat功能
Cursor通过Chat面板与用户交互,通过Chat生成具体操作步骤与代码,指导用户完成功能开发,解决用户的问题。
与Cursor聊天,支持选择使用的模型,选择适用的模型能更好解决问题。经过实践,Claude模型编码能力要比GPT强一筹。
Cursor支持通过@功能添加上下文信息,上下文是生成代码准确率,提升效率的关键。@功能支持添加文件、文件夹、codebase等作为上下文信息。
在个人开发中,常用的是通过@文件添加关联文件,配合准确的Pompt描述,Cursor能够基于这些文件”思考“和修改,输出超出预料的准确改动。
方便的快捷操作
在Chat面板与Cursor交互,Cursor生成的命令,可通过代码块右上角的运行按钮可快速运行,减少了复制粘贴到命令行的时间。
除了命令,生成的代码也会在右上角区域显示文件名和apply按钮,如果通过@文件的方式提问,点击文件名能直接跳转到对应的文件,点击代码输出的变量,也能直接跳转到变量所在的代码行。点击apply则会直接将改动内容修改到对应的文件中,非常方便。
优化的apply功能
Cursor的apply功能,不是简单的将代码插入覆盖到对应的文件。而是智能的识别插入位置,将代码放置到它应该在的地方。从使用感受上来看,apply的准确率非常高,没遇到几次插入位置错误的情况。
Cursor在插入代码后,每段代码均支持单独接受或者拒绝,非常实用,毕竟没法保证生成的所有代码100%可用。
如果发现代码接受错误,还能通过Ctrl+z返回上一步的接受、拒绝界面,给开发者重新选择的机会,这个细节真的让人觉得花了心思。
Ctrl+k快速修改代码
Cursor支持在单文件中,使用Ctrl+k修改当前文件代码。通过选中代码进行修改,能够控制代码修改范围,使修改更有针对性,这个操作也支持通过@添加上下文。
以前想,如何使用Prompt实现精准仅修改某行代码,显然对于大段代码来说难以控制。通过选中代码的交互方式解决了这个问题。
更智能的自动补全
自动补充是Colipot的最基础能力。Cursor的代码补全由于带有上下文信息,准确度比较高。
除了在当前输入行的代码补全外,Cursor还能自动的预测你下一步可能做的修改,你只需要连续按Tab就能完成期望的多处修改,让人产生写写代码居然如此简单的感觉。
自动AutoFix
Cursor能识别代码错误,并提供一键修复的快捷选项。
自动排障
编码难以避免出错,少不了跟错误信息打交到。Cursor支持直接选中终端中的错误信息,快捷添加到chat。通过错误信息,和当前文件或者通过@file添加的文件,能直接生成修改后的代码,apply插入代码,一气呵成。
通过附带错误信息,和错误所在代码文件,有很大的概率能解决问题。
总结
Curor体验为何出众。经过使用,发现Cursor从多个点打磨功能细节,将ai的能力真正的融入到开发的流程中,减少了切换成本,让开发流程非常顺畅,真的像一个贴心的副手在协助开发者。
一个问题
使用ai开发,生成代码很快,人力拍马不及。开发者在开发过程应该扮演什么样的角色,AI真的能完成开发过程的所有事项吗。
在此次开发过过程中存在一个问题,开发前没有进行系统的设计,而AI也没有自动地替代开发者执行这一部分的工作,导致生成出来的代码,仅能达到可正常运行的标准。
AI输出巨量代码,让人感到麻木,审核代码的时就匆匆瞥一眼,反正能跑就行,没发现问题==没问题。对于开发人个项目,或者原型来说并没有什么问题。但是如果需要保障系统的可靠性、扩展性、可维护性、性能等,开发流程中仍很多过程不能省略。如果仅是写一些常规代码,或许我们才是AI的Colipot。