Cursor使用经验分享

声明

下面内容仅代表个人完全主观言论,没有任何客观依据。请仔细分辨内容真实性,不可盲目相信。

注意

目前的人工智能技术尚未达到 AGI(通用人工智能) 的水平。AI 本质上仍是一个高级的模式匹配工具,因此 不要期望通过一句话就能实现复杂功能。你需要耐心地逐步引导 AI 完成任务。


最新动态

一个十分令人兴奋的消息,在 0.48.x 中增加了许多新的功能!包含 聊天选项卡 (我们可以同时并行多个任务了!)、 基于使用情况的成本可见性 (不在浪费上下文长度)和 关于长语境的新聊天 (相当于 Token 耗尽提示)等功能!

当然,重磅功能当然是 自定义模式 的登场,根据官方文档描述可以创建一些特定功能的聊天。更加专注某一个工作,就避免过度修改源代码导致出现意料之外的情况!
Cursor – Custom modes

0.47.7

Cursor 已经推送了 0.47.7 版本客户端,更新内容是增加了 Claude 3.7 Sonnet Max (你别说,弄的UI还挺好看的),但是 Claude 3.7 Sonnet Max 一次 0.05 的消耗有些难顶。另外,0.47.6 推送中好像有更快速的差异应用。

碎碎念:靠北,Claude 3.7 Sonnet Max 只能基于计费的请求。我是用不上了,不会额外掏钱的!不会!我穷我自豪!

0.47.5

Cursor 已经推送了 0.47.5 版本客户端,这一版本中我觉得重要的是在 Agent 模式下的 Auto 模型模式。大家给我点时间让我试一试这个模式到底咋样,稍后更新帖子。

用了一上午,没啥感觉。大家开不开吧,我个人还是选择锁定 claude-3.7-sonnet 用着了,或许是我用的有些草率?不确定,再看看。

文档中解释以及更新内容翻译


常用模型角色

  • claude-3.7-sonnet : 目前都使用这个一个模型了,因为 deepseek-r1 已经开始进行计费了。

已过期内容
  • claude-3.5-sonnet :具体代码编写
  • deepseek-r1 :任务规划以及拆分

一些使用Cursor开发的Github项目

以下是一些使用 Cursor 和不同模型开发的实际项目案例:

  1. YamlTranslater

    • 模型:claude-3.7-sonnet
    • 请求次数:约 40 次慢速请求
    • 描述:一个 YAML 文件转换工具,附带详细的项目规划与进度记录。
    • 链接:BingZi-233/YamlTranslater
  2. Appwrite SDK for Java

    • 模型:claude-3.5-sonnet
    • 请求次数:约 450 次快速请求
    • 描述:一个用于与 Appwrite 后端服务交互的 Java SDK。
    • 链接:BingZi-233/sdk-for-java
  3. LuckPerms Bridge Spring Boot Starter


需要知道的一些知识

  1. .cursorrules 文件
    这是一个用来设定项目规则的文档,通常用 Markdown 语法编写。不过,由于 AI 只是读取内容(Token),其实文件格式并不重要,你可以用任何格式来写,只要内容清晰明了就行。

  2. .cursor/rules 文件
    这是 .cursorrules 的升级版,可以更细致地配置规则。比如,你可以为不同类型的文件(如 .java.vue 文件)设置不同的 AI 规则。这种功能特别适合那些涉及多种编程语言的复杂项目。

  3. 普通模式 vs. 代理模式
    在 Cursor 的 Composer 功能中,你可以选择两种模式:

  • 普通模式:适合快速、单次的代码编辑。它不会深入思考问题,主要用于简单的修改或调整。
  • 代理模式:AI 会更加“聪明”,它会认真分析问题,使用推理和工具来解决复杂的任务。这种方式更适合需要深度理解和探索代码的场景。

重要提醒
很多人容易混淆这两种模式的用途,导致使用不当。比如,有些人用普通模式试图完成代理模式才能做到的事情,结果发现效果不好,甚至吐槽 Cursor 不够智能。其实问题在于没选对模式!记住:如果你需要高质量的结果,请务必切换到代理模式!


使用流程

  1. 使用 claude-3.7-sonnet 模型先进行需求规划(一般我会让AI放到docs文件夹下面,使用Markdown格式存放内容),尝试消除自然语言描述时存在的 二义性

  2. 使用 claude-3.7-sonnet 模型列出步骤清单,避免之后使用 claude-3.7-sonnet 模型进行代码编写的时候,一次灌入太多内容导致Token快速被消耗殆尽出现幻觉。

  3. claude-3.7-sonnet 模型读取步骤清单,根据清单开始工作。每次只进行一步,完成之后要及时更新步骤清单完成状态。

这里主要是避免 claude-3.7-sonnet 进行如下工作:

  • 重复执行某一步骤导致失控
  • 避免检查导致的Token上下文长度消耗
  • 避免重写已经完成的部分(它真的会这么做)
  1. 切换回 IDEA 中消除存在的警告和编译错误。如果这里存在问题,请回到 Cursor 中让 claude-3.7-sonnet 修改对应部分。

  2. 指挥 claude-3.7-sonnet 进行版本提交(这里大多数人都使用的是Git吧?我电脑没有安装全局的SVN,所以在使用SVN的时候一般是我手动提交)

  3. 新开一个对话,回到 步骤3 继续

关于 .cursorrules 如何编写?

我们为什么一定要自己去编写 .cursorrules 文件,如果让 claude-3.7-sonnet 来修改是不是可以更好的达到我们的预期?这一章节就是使用 claude-3.7-sonnet 来根据项目来定制一个合适的 .cursorrules 规则文件。


资源

推荐:

(因为我在这里面看到了V0的提示词了,就离谱。

参考:

.cursorrules 编写改进流程

由于 Cursor 调整 .cursorrules 以后可能会出现不可用的情况,这里还要再挖个坑更新新版本的 .cursorrules

  1. 我们在上面的资源里面选择一份比较贴切.cursorrules 文件,并粘贴到 ./.cursorrules 文件中。

  2. 找到我们的包管理文件 build.gradle.kts (这里使用Kotlin+Gradle举例)

  3. 在左侧选择模式 claude-3.7-sonnet ,并添加 .cursorrulesbuild.gradle.kts 文件给聊天上下文。

  4. claude-3.7-sonnet 提出修改要求:请根据 build.gradle.kts 中使用的包修改 .cursorrules 文件。

  5. 针对不满意的地方接续对 claude-3.7-sonnet 提示修改建议。

  6. 结束

注:定制规则文件不是一次性就能成功的,你需要根据你使用过程中的感觉对 .cursorrules 文件不断进行迭代。

小技巧:你纠正过AI的错误之后,让他将相关内容记录到 .cursorrules 文件中,这样下次就可以避免他总是犯同样的错误。另外一个 每月200美元 的AI(这里不提具体名字了)的长期记忆,也是类似的原理。


关于 TAB 功能

我之前一直觉得 Cursor 中不适合真正的代码编写工作,虽然 CursorAI 是很厉害但毕竟是基于 VSCode 制作的。无论从那个方面应该都无法和 IDEA 这类专业工具来的舒服,但今天我发现我错了CursorTAB 补全功能在一定程度上弥补了工具上的功能缺失,我决定近期尽可能使用 TAB 功能。后续我会更新相关的内容。

碎碎念:之前一直没用,甚至给禁用了。我痛失一个亿!


关于 节省快速请求次数

什么是快速请求?

Cursor 官方是这么说,经典废话文学了。

图片内容


宇宙安全声明:以下内容仅作为个人使用过程中的推测,无客观证据。请谨慎辨别内容可靠性。

Cursor 应该是按照了最大量来计算一个快速请求,也就是 claude-3.7-sonnet 的最大 Token200K 被记为 0.02 美元。

猜测:
  1. 对话尚未耗尽 Token 开启新对话则额外消耗 1 快速请求次数。
  2. 对话超过最大 Token(也就是 200K ),会被额外计算为 1 次快速请求。
  3. 单次回答中调用超过 25 次工具后,之后的问题会被额外计算为 1 次快速请求。
应对方法:
  1. claude-3.7-sonnet 自己寻找上下文(Agent模式才会有这个能力),而不是手动指定整个文件作为上下文(这真的很浪费上下文)。
  2. 降低新对话的开启频率,有些时候你的 Token 还没有消耗殆尽。根据上面的猜测,上次对话未耗尽的 Token 在新开对话后会被直接丢弃。所以不要做无意义的浪费,尽可能的消耗 Token
  3. .cursorrules 中让每次回答都使用 xxxxx 开头,如果回复出现 xxxxx 消失 就基本可以判断Token耗尽了。

关于 自动测试并修复问题

前提
  • 你的工具要支持进行 单元测试 功能才能进行 自动测试 行为。
  • 你要开启 YOLO 模式才能享受 自动测试 带来的便利。
步骤
  1. claude-3.7-sonnet 编写 单元测试
  2. 配置好对应的 环境变量
  3. 大部分情况下 claude-3.7-sonnet 都能知道应该做什么,但是为了节约 快速请求 次数我们一般会让他尽可能一次性完成测试目标
话术
请为 某某 功能编写单元测试,并运行它。如果出现问题请进行修复,直到通过测试。
效果图



更换使用的终端

Ctrl + Shift + P 唤起命令框,输入下面命令:

>Terminal: Select Default Profile

选择 Git Bash ,重启 Cursor 客户端。

Q: 为什么选择 Git Bash
A: 因为 Cursor 总是会使用 Linux/MacOS 的命令格式,导致白白浪费工具调用次数。使用 PowerShell 又总会失败。所以这里选择了 Git Bash ,开发者应该都有这个东西吧?对吧?

对话示例

图片太长了,这里折叠一下。

对话示例图片内容


关于Trae使用体验

依托,就是依托。没有规则约束,上下文和没有差不多。用起来我感觉我被喂了依托赛博答辩。


如何知道自己的提问被关注?

你有什么想问的可以在下面进行提问。如果你收到了我的点赞,代表接下来我会尝试更新对应内容。

155 Likes

让他给我调整一下训练算法,就知道瞎写。

11 Likes

如果有过程的话,我可以帮你看看哪里有问题。

8 Likes

期待分享~~~

8 Likes

cursor太难用了现在

6 Likes

蹲个后续吧

4 Likes

.cursorrules 有示例吗,我目前的规则就是用中文回答 :joy:

7 Likes

大佬 期待后续

5 Likes

:tieba_087:大佬的 cursor 是用什么模型来玩的

4 Likes

占个座等佬更新

4 Likes

怎么写.cursorroles啊,我记得有个佬友分享过网站

2 Likes

来学习下

2 Likes

蹲蹲,学习

2 Likes

现在降智到无法用 我让它创建一个md文档都不会 做啥都几句话 然后大概告诉我咋弄就完了 也不给我写代码改代码

3 Likes

请问 .cursorrules 应该如何编写呢

3 Likes

已点关注,坐等更新

1 Like

进来学习

1 Like

感谢佬友分享!!

1 Like

来学习学习

1 Like

学到了1

1 Like