在持续使用Cursor一年多之后,最近我正在全力用它开发一套PPT转数字人培训系统,项目即将成型。这中间踩了不少坑,也摸索出了一些实用技巧。现在把这些关键经验整理出来,希望能给同样在使用Cursor的朋友们带来一些启发。
1. 写之前一定要先写 Rule
如果不提前设定规则,生成的代码很难维护。
尤其是Python,语言非常灵活,缺乏强制性的分层约束。用Cursor写代码时,很容易把所有逻辑都堆到一个文件里,既不分层也不考虑后续扩展。
我一开始没在意这个,写了两周后回头一看——一个main.py直接膨胀到2000多行,函数和逻辑全部混杂在一起。
后来学聪明了,开始用.cursor/rules/目录下的规则文件来约束AI。给它明确的结构要求,比如分层(service/handler/model)、命名规范、注释风格。
效果立竿见影,代码的可读性和可维护性直接提升了一个档次。
下面是一份可以直接使用的参考规则:
---alwaysApply: true---你是一个具备15年工作经验的Python专家,请严格按照以下规范写代码:### 代码规范1. 必须分层结构(controller/service/utils)2. 必须使用类型注解(typing)3. 必须有异常处理4. 必须有日志(logging)5. 不允许写在一个文件6. 每个函数必须有docstring7. 命名要清晰(禁止 a,b,c)8. 代码要可扩展(不要写死)9. 代码要考虑可维护性10.系统依赖要放在requirements.txt里面维护11.配置要放在.env里面12.系统启动要用虚拟环境13.保持项目结构清晰,遵循模块化原则### 解决问题时全面阅读相关代码文件,理解所有代码的功能和逻辑。分析导致错误的原因,提出解决问题的思路。与用户进行多次交互,根据反馈调整解决方案。在整个过程中,始终参考@Python官方文档,确保使用最新的Python开发最佳实践【输出要求】1. 给出完整项目结构2. 每个文件单独展示3. 代码可直接运行
2. 别让它一次改太多东西
另一个容易踩的坑:千万不要一次性让Cursor修改过多的内容。
你可能只想改一个函数,结果它顺手把旁边三个文件也改了,而且改得千奇百怪。
说白了,这个工具的上下文窗口较大,容易“过度联想”。
经验之谈是:一次只提一个具体需求。让它完成一件事,确认没问题后,再提出下一个任务。
尤其在重构时,千万不要给出“帮我把这个模块重构一下”这种模糊的指令——出来的结果基本是灾难性的。
3. 充分利用 Rules 目录
Cursor支持在.cursor/rules/下放置规则文件,格式为.mdc。
这个功能很多人会忽略,实际上非常实用。
你可以针对不同类型的项目、不同的技术栈,编写不同的规则文件。Cursor在处理对应文件时会自动参考这些规则。
规则写得越清晰,输出质量差距越大。
规则里可以定义:
- 项目结构要求
- 代码风格规范
- 输出格式要求
- 工作流程约定
4. 给它足够的上下文
上下文提供得越充分,输出质量就越有保障。
如果上下文太少,它就靠“猜测”来工作,猜出来的结果自然不准。
有用的上下文包括:
- 项目结构截图或描述
- 相关代码文件路径
- 报错信息完整粘贴
- 之前的思路和尝试过程
没有帮助的上下文:
- 太大段的代码(会被截断)
- 与当前任务无关的历史对话
- 过于模糊的需求描述
学会如何提供有效的上下文,是充分发挥Cursor能力的重要技巧之一。
5. 给 Cursor 试错的机会
不少人用Cursor时,总抱着“一步到位”的心态——提一个需求就期待完美的结果。
但AI的工作方式并非如此。
它需要迭代。你提出一个需求,它给出一个版本;你指出问题,它再修改。
这个过程实际上比想象中快得多,甚至比自己手动编写还快。
所以不要怕让它反复修改。改两三个版本是常态,这是正常的交互节奏,并不代表它能力不行。
6. 陷入"死亡螺旋"
这是AI助手的通病——让它改一个地方,结果改出了更多问题,反复推理反复修改,Token消耗巨大,代码越改越乱,最后面目全非。
解决这个问题其实很简单:每完成一个能正常运行的版本,就提交一次commit。
不用等代码完美,只要功能跑通、没有明显问题,就commit一次。commit message写清楚本次改动的内容。
这样万一后面改乱了,直接用git reset回退到上一个稳定版本,重新开始。
另外,Cursor也支持“Continue and revert”的操作模式,当修改出问题时可以回退,配合commit使用效果更佳。
养成小步提交的习惯,关键时刻能救命。
7. Agent 超时的处理方法
Cursor Agent模式偶尔会遇到超时问题,界面提示:
很多人到这里就卡住了。可以尝试以下几个方案:
方案一:拆分问题
超时多半是因为任务太大,Cursor处理不过来。把问题拆分成更小的单元,分步提问,减少单次请求的信息量。
方案二:换个简单问题测试
先问一个简单的问题,比如“你好”,看看能否正常回答。
- 如果能回答,说明连接没问题,是当前任务过重。这时可以去掉图片、去掉附件文件,只用纯文本再试。
- 如果也不能回答,说明是连接本身的问题。
方案三:重试或新开对话
点击Try again,或者直接新开一个对话。有时候只是偶发的网络问题,重试就能解决。
方案四:重启 Cursor
以下是官方提供的标准方案:
- 完全关闭Cursor
- 修改项目文件夹名称(加个后缀,比如
my-project-v2) - 重新打开Cursor
听起来有点玄学,但实测确实有效。
9. 新开后会丢失历史对话?
Cursor官方其实鼓励拆分任务,根据任务需求多开新对话,这样模型的回答会更智能,也更节省Token。
同时,可以通过如下方式引用历史对话:在对话框输入@p,选择Past Chats即可。
10. 为啥不用 Claude Code?
可能有人会问:Claude Code那么强,为什么还在用Cursor?
这里说两个真实原因。
第一,Cursor改前端页面实在太方便了。直接截图丢给它,画个圈说“这里改一下”,它就能理解意图。相比写文字描述,截图更直观,出错概率也更低。前端这类视觉内容,截图比代码更能说明问题。
第二,Cursor账号的购买成本相对可控,而且很耐用。
说白了就是性价比。工具没有绝对的好与坏,只有最适合你的场景。Claude Code有它的优势,Cursor也有Cursor的适用场景。选哪个工具,关键看你手头有什么任务,以及要解决什么问题。
总结
Cursor不是银弹,想要用好它需要配合一些方法:
- 先写Rule,约束比修复更省事
- 一次只做一件事,减少它“过度联想”
- 充分利用Rules目录,不同项目不同规则
- 提供足够上下文,减少幻觉
- 接受迭代,改两三次是正常的
- 小步提交commit,防止死亡螺旋,确保有回滚点
- 超时不要死磕,拆分任务、重试、重启Cursor
- 新开对话不怕丢,用@p引用历史对话
- 选工具看场景,Cursor截图改前端+性价比,真香
以上是经过实践验证比较有效的路线。用法对了,效率翻倍;用法不对,就是给自己挖坑。希望这些经验能帮你少走一些弯路。
