最近Cursor大火。
作为一名程序员,理应接触接触,了解了解。
好吧!这一了解,我直接用Cursor替换了用了好几年的vscode了。
下面我把体验Cursor的过程总结了一下。你看看。
Cursor是啥
Cursor是一款革命性的AI驱动代码编辑器,旨在大幅提升开发者的工作效率。它将先进的人工智能技术与传统的编程工具完美结合,为编程带来了全新的体验。
Cursor最大的亮点在于其强大的AI助手功能。它内置了目前最先进的大语言模型,可以理解你的整个代码库,并提供智能的编程建议。你只需按下Ctrl K,就可以让Cursor帮你编辑或生成代码。它的自动补全功能远超传统工具,还能提供整个代码差异的修改建议。此外,Cursor还支持用自然语言编写代码。
给出简单的指令,它就能帮你更新整个类或函数,大大简化了编程流程。Cursor甚至能预测你的下一步操作,让你的双手无需离开键盘。在使用体验上,Cursor也很出色。它是VS Code的一个独立分支,支持导入原有的所有扩展、主题和快捷键。
目前Cursor提供两周的试用权益,还是挺大方的。Pro 权益20美元一个月。和Claude,OpenAI的大模型收费基本持平。但Cursor可以同时使用Claude和OpenAI的模型。还是比较香的。

功能体验
配置Cursor
当你开始使用Cursor前,我建议你先进行一下这些配置。点击右上角的Open Cursor Settings
,打开Cursor配置面板。
一键导入vsCode的配置

因为Cursor是基于vsCode开发的,所以之前在vsCode中的配置可以一键导入到Cursor。真正实现无缝切换。
设置AI回复的通用规则
我这里设置了回答都用中文。
配置大模型

这里配置开关可以使用哪些大模型。最下面的deepseek-coder是我自己加的。上面的是Cursor预设好的。在试用期间,只需要打开上面的模型开关就可以直接使用该大模型了。
如果有需要增加自定义的模型,就需要在下面设置自己的大模型API KEY。并在上面增加模型的名称。后面我会以deepseek-coder 为例演示配置方法。
记住三个快捷键就够了
MaC电脑:Command + i
Win电脑:Ctrl + i
这个快捷键将打开Cursor的Composer功能。这个功能可以一次性生成整个项目代码。
弹出的这个小窗口就是composer的操作面板。当然也可以点击右上角的Open Control Panel
打开完整的控制面板。同时右下角也可以选择使用哪个大模型。

下图展示了生成的结果。点击右下方的Accept all
就可以应用所有生成的代码。
我们来看看文件夹里的情况。确实按要求生成了所有需要的文件。

如果我们随便要求它写一个readme
文件,把编译命令写进去,方便后续查看。

OK。看着还不错。我们接受所有生成的内容。
MaC电脑:Command + K
Win电脑:Ctrl + K
这个快捷键可以直接在代码编辑区打开对话窗口。然后,直接在相应的地方描述你希望的修改。

在这个小对话窗口的右下角可以选择使用什么大模型。

MaC电脑:Command + L
Win电脑:Ctrl + L
使用这个命令会在右侧打开一个功能更加强大的对话框。

在这个对话框里可以选择多个希望交互的文件。通常在我们打开这个对话的同时,Cursor会自动添加一个推荐交互的文件。如果你需要更换交互的文件或者增加减少要交互的文件。点击左上角的➕号即可。

左下角仍然是可以选择使用哪个大模型的。这些可选的大模型就是前面配置大模型的开关确定的。

Mention功能十分强大

在Mention中你可以引入特定的文件,文件夹,代码中某段代码块。你也可以@web 以实现联网查询信息。


与整个项目代码对话
当我们第一次打开一个项目代码工程时,Cursor会自动向量化整个项目代码。

这也是我们可以和整个项目代码对话的基础。这里涉及到了RAG(检索增强生成)相关的技术。 检索增强生成(RAG)是一种人工智能框架,它结合了信息检索系统和生成式大语言模型(LLM)的能力。RAG的 工作流程包括检索和预处理外部数据,然后将这些数据整合到预训练的LLM中,以生成更准确、时效性强且符合特 定需求的文本。
简单来说就是,Cursor先会基于整个项目代码建立对应的数据库。然后根据你的问题,去数据库里找最相关的部分。把这个信息和你的问题一起发送给大模型。这样大模型就会有你提问的背景信息,回答也会更加精准到位。

按Ctrl + Enter快捷键即可启动基于Codebase回答问题。
看图说话也能行
我把左侧的代码截了图,并上传给了右侧的对话框。测试了一下,确实可以看图说话,图片里的代码也能理解。这让我想起了喜欢发截图让我看代码的人。好吧!有Cursor在,我就原谅你们了。

建立自己的知识库,对话更高效准确

然后问问题的时候就可以@自己建立的doc了,让AI基于自己的知识库来回答问题。这样AI可以比较精准且能个性化地回答你的问题。

善用对话历史
对话历史都会保留在下面。

对于一些常用的提示词,可以一直用同一个对话,然后适当重新编辑提示词就可以继续对话。省时省力。

总结一下,如果要一次性先把项目雏形生成好,使用composer,快捷键Ctrl + i。在不同的文件内部做快速修改,直接快捷键Ctrl + K,调出小对话窗口。需要更强大的对话交互能力,快捷键Ctrl + L,调出右侧对话窗口。
使用deepseek API
为什么使用Deepseek API
理由很简单:国产技术访问无障碍,code技能一流,且价格便宜。
看看权威的测试评比数据,与Claude-3.5-sonnet不相上下了。而Claude-3.5-sonnet是国际上公认的,coding能力超过GPT-4的大语言模型。

而且最近deepseek发布了V2.5版本,性能进一步提升了。

如何使用使用Deepseek API
Deepseek 开放平台网址:https://platform.deepseek.com/
先在平台上注册一个账号。注册好就会收到试用的10元额度啦。
deepseek的API价格非常的亲民,10块钱就有500万的输出Token。

价目表来源:https://platform.deepseek.com/api-docs/zh-cn/quick_start/pricing/
登录好Deepseek 开放平台就可以创建一个自己的API KEY了。

在Cursor中配置Deepseek API

如上图所示,点击Add model
,添加deepseek-coder模型。注意模型名称必须要按照deepseek-coder来填。用deepseek-coder这个名称已经可以调用最新的V2.5版本了。
因为deepseek API是兼容OpenAI的API的。所以,可以直接把deepseek的API KEY 填写到OpenAI API KEY
这一栏中。
下方的OpenAI Base URL
填写 https://api.deepseek.com/beta 。
这个base url可以支持最大8K的输出长度。
这些信息来源于deepseek api文档:https://platform.deepseek.com/api-docs/zh-cn/quick_start/pricing/
其他事项
但是用自定义的API无法使用联网搜索功能,略有遗憾。想有更好的体验,订阅pro权益也是不错的选择。

可能会用到的东西
一些Cursor配套的提示词。