最开始接触 cursor 的时候是在去年年初,openAI ChatGPT 带火了一批 AI 概念产品。GitHub 的 Copilot 自不用说,很早就在使用,有了大模型的加持当时也是如日中天。 我记得 cursor 当时主打的点是:
可以无逢迁移 vscode ,vscode 的所有插件可以直接一键转移到 cursor。连界面都一模一样
轻巧、快速。体量小,启动快,编程效率高
可用免费的 AI 模型进行提示。
当时体验下来发现也确实如宣传所说,是挺快,但是没有那么强的吸引力,后来也就没有重度使用。
去年11月我又体验了一下 cursor,包括公司内也突然开始推广ai coding ,就发现它和原来的版本有很大的不同。而这一次,彻底改变了对它的看法。目前我已将编程工具切换到了 cursor,效率有了非常大的提高。
能够写已知的未知,也能学习未知的未知。
先说说我了解的cursor的特性:
智能代码重写
最让我惊艳的是Cursor的"Smart Rewrites"功能。它不仅能纠正拼写错误,还能自动规范化你的代码格式:
// 随意输入的CSS(故意写错的)
dataStyles: {
top 10px
left 10px
position fixed
zindex 1000
}
// Cursor自动修正为标准格式
dataStyles: {
top: '10px',
left: '10px',
position: 'fixed',
zIndex: '1000' // 注意这里自动修正了 zindex 为 zIndex
}
智能光标预测
这是我最喜欢的功能之一。Cursor会预测你下一步最可能要编辑的位置,通过Tab键就能快速跳转:
// 当你输入完一个函数参数时
function handleSubmit(event) {
// Tab键直接跳转到函数体内的最佳位置
▌ // 光标自动定位在这里
}
// 在条件语句中
if (condition) {
// Tab键智能跳转到下一个需要编辑的位置
▌
} else {
▌
}
多行批量编辑
想象一下这个场景:你需要修改一系列相似的代码块。在VSCode中,你可能需要:
使用多光标(Cmd/Ctrl + D)逐个选择
或者使用正则表达式查找替换
而在Cursor中:
// 原代码
const Orange = new Block("Orange").id(5006);
const Blue = new Block("Blue").id(5007);
const Red = new Block("Red").id(5008);
const White = new Block("White").id(5009);
// 只需要在第一行添加 "Concrete",Cursor就能理解你的意图
// 自动为所有相似结构添加相同的修改
const Orange = new Block("Orange Concrete").id(5006);
const Blue = new Block("Blue Concrete").id(5007);
const Red = new Block("Red Concrete").id(5008);
const White = new Block("White Concrete").id(5009);
智能对话(Chat)
核心特点:
实时感知当前文件和光标位置
支持自然语言交互
可以直接询问代码相关问题
快捷键
Cmd/Ctrl + L
激活全局对话
使用场景:
// 可以直接询问:
"这段代码有bug吗?"
"如何优化这个函数的性能?"
"这个组件的状态管理是否合理?"
即时应用(Instant Apply)
特点:
一键应用AI建议的代码修改
实时预览修改效果
支持批量代码更新
智能合并冲突处理
代码库智能查询(Codebase Answers)
功能亮点:
使用
@Codebase
触发深度理解项目结构
智能代码搜索
上下文相关的答案
常见用法:
@Codebase 如何实现用户认证?
@Codebase 这个API在哪里被调用?
@Codebase 查找所有使用Redux的组件
代码引用(Reference your Code)
特性:
使用
@
符号快速引用代码自动补全文件和符号名
智能上下文关联
支持跨文件引用
比如:
# 引用特定文件
@utils/auth.ts
# 引用特定函数
@validateUser
# 引用特定组件
@components/Button
图片识别(Use Images)
创新功能:
支持拖放图片
智能识别UI组件
代码实现建议
视觉参考转代码
Web集成(Ask the Web)
实用特性:
使用
@Web
触发网络搜索实时获取最新信息
智能整合答案
自动引用文档
智能上下文理解
Cursor的Agent模式代表了AI辅助开发的一个重要突破,它能够自主完成端到端的开发任务,同时保持开发者对整个过程的掌控。让我们深入了解这个强大的功能。
利用Agent,可以做到更智能的上下文能力:
使用自定义检索模型
自动分析项目结构
减少手动添加上下文的需求
精准定位相关代码
自动化命令执行
利用Agent,可以做到:
智能生成终端命令
提供命令确认机制
支持批量操作
自动处理依赖关系
在composer的Agent模式下,我们可以给Agent一些简单的指令,它会自动拆解任务,执行终端命令,我们还可以借助YOLO模式的开启(Cursor Settings打开开关即可)来让终端命令自动执行:
错误循环处理
Agent模式下,Cursor会自动检测出lint问题,并且重复循环进行修复,直到问题被解决为止:
自动检测代码问题
智能修复建议
持续优化循环
减少手动调试需求
自动提交Git Commit
使用Agent,我们直接不用操纵Git,让它帮忙快速写好commit message并且提交:
重新定义AI辅助开发体验
在经历了从VSCode到Cursor的转变后,我深刻体会到AI辅助开发工具已经不仅仅是一个代码补全助手,而是evolving成为一个真正的开发伙伴。
让我们深入对比一下Cursor和Copilot的特性:
最后
万事都有两面性,在我们尝到了真正的甜头后,长此以往就对ai产生依赖了,可能越来越习惯让AI写代码,慢慢手写会越来越生疏,最后导致离不开ai。对公司和业务来说是好事,对我们自己的发展和能力提升是否有益?新生代ai程序员?