image

什么是 Cursor

Cursor 是一个新兴的、AI 驱动的集成开发环境(IDE),专为现代软件开发而设计。它结合了传统 IDE 的功能与先进的 AI 技术,旨在提高开发者的生产力和代码质量。

Cursor IDE 的主要优势:

  • AI 辅助编码:实时代码建议和自动完成
  • 智能代码解释和重构
  • 快速上下文相关的文档查询
  • 集成的 AI 聊天功能,用于问答和问题解决
  • 现代化的用户界面和流畅的用户体验
  • 支持多种编程语言和框架

Cursor 下载安装

Cursor 官网 上找到对应版本下载安装即可。

基本配置

安装好 Cursor 后最好做一些基本的配置。

导入 VS Code 的配置

如果你本来就有用 VS Code 的话,可以将 VS Code 的配置导入到 Cursor 里,一般在安装 Cursor 时就会有一个流程提醒你这么做,如果没有做的话可以在设置里手动导入。

配置全局规则

Cursor 有两套规则,一个是在设置里的,对所有项目和对话生效,一个是在项目根目录下新建 .cursorrules,对当前项目生效。

配置模型

Cursor 支持配置自己的 LLM API,目前来看 claude-3.5-sonnet 是最适合用来编程的。

如果是用的 Cursor 支持的 LLM 厂商的官方 API,直接填写 API Key 即可。

如果用的是第三方的 API,需要在 OpenAI API Key 这一栏添上自己的 Key 和 Base URL,模型名不存在的话还需要在上面的 Model Names 里添加上自定义的模型名。这里有一点需要注意,所有 claude- 开头的模型 Cursor 都会用 Anthropic 的官方接口,不会使用我们自定义的 API Base URL,所以如果要用第三方的 claude- 模型,需要将模型名改为非 claude- 开头,可以用 OneAPI 来实现。

常用功能

Tab 补全

Tab 的能力和其它 IDE 一样,主要用来补全,Cursor 的 Tab 除了补全也可能修改部分代码,按 ESC 键则会拒绝补全。

Chat 生成新代码

Cursor 左侧有一个 Chat 对话框,用于和 LLM 对话,和其它的 LLM 对话框类似,我们可以让它帮忙生成代码。

默认的对话框将当前文件作为上下文,但是很多的时候我们需要它关注更多的文件,可以通过这两种方式来添加文件作为上下文。

通过 @ 添加

通过 + 添加

比如

CMD+K 修改现有代码

选中一段代码,然后按 Cmd/Ctrl+K,可以针对这部分代码给出指令让 Cursor 修改。同样也可以用 @ 在对话框里加上其它上下文。

Fix Me

对于提示的代码报错,可以直接将错误转到对话框让 Cursor 帮你修复。

配置 rules(.cursorrules)

Cursor 的 .cursorrules 功能为 AI 助手提供了一个定制化的 Prompt。

通过在项目的根目录放置 .cursorrules 文件,我们可以在这个文件里提供更多用与 Cursor 编辑的上下问,比如我们可以:

  1. 指定项目的技术栈
  2. 设定开发规范
  3. 引导AI的问题解决思路
  4. 创建自定义指令

这样的预设能显著提高 Curosr 生成代码的准确性和相关性,使其更好地符合项目需求。

关注公众号:架构研究社​ 回复cursor提示词​ 即可获取持续更新的 cursor针对不同框架和语言的rules并提供rules定制化服务!

添加文档

我们自己在写代码的时候也经常会去查阅文档,特别是对接某些 API 或者使用某些库的时候,所以 Cursor 在写代码时也能添加文档用于参考。

添加文档

添加文档有两种方式,一是用 @Docs​ > Add New Doc​。

另外是进入 Cursor 的设置页面手动填加。

目前 Cursor 只支持添加 URL 类型的文档

我这里添加完后并没有自动索引,需要手动点一下索引,等文档前面的小红点变成绿色就可以了。

生成

然后 CMD+K @这个文档并输入你的指令就可以根据文档进行生成了。

对话技巧

  • 多用 Git 保存分阶段提交可用的代码,虽然 Cursor 生成代码的能力很强,但是有时生成大量的代码被 Accept All 后容易让整个项目运行失败,建议分阶段提交代码,这样遇到问题可以回滚。
  • 一个 Cursor 窗口打开一整个项目,Cursor 默认的上下文目录就是这个目录,如果这个目录的范围太大或者太小都不利于代码生成。
  • Cursor 有时会只给出修改的部分代码,其它则忽略掉,这样在 Accept All 后会破坏已有的代码。可以在全局 rules 里写明要生成完整的代码,也可以在对话的时候强调。