用 Cursor 也已经一年多了,最近正在深度用它写一个 PPT 转数字人培训的系统(马上要出来了)

遇到一堆坑,也摸索出一些技巧,给大家分享下。
1. 写之前一定要先写 Rule
不然出来的代码没法看。
尤其是 Python,代码太灵活了,没有强制的分层约束。Cursor 写起来很容易所有逻辑都堆在一个文件里,不分层,不考虑扩展性。
我之前没在意这点,写了两周回头一看——一个 main.py 2000 多行,全是函数和逻辑混在一起。
后来学乖了,开始用 .cursor/rules/ 目录下的规则文件来约束它。给它一个明确的结构要求,比如分层(service/handler/model)、命名规范、注释风格。
效果立竿见影,代码可读性直接上一个台阶。
下面是我的 rules,仅供参考
python
---
alwaysApply: true
---
你是一个用于15年工作经验的Python专家,请严格按照以下规范写代码:
### 代码规范
1. 必须分层结构(controller/service/utils)
2. 必须使用类型注解(typing)
3. 必须有异常处理
4. 必须有日志(logging)
5. 不允许写在一个文件
6. 每个函数必须有docstring
7. 命名要清晰(禁止 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 幻觉多不多,和你给它的上下文质量直接相关。
上下文给得少,它就靠"猜",猜出来的东西自然不准。
有用的上下文:
- 项目结构截图或描述
- 相关代码文件路径
- 报错信息完整粘贴
- 你之前是怎么想的/尝试过什么
没用的上下文:
- 太大段的代码(它会截断)
- 和任务无关的历史对话
- 太模糊的需求描述
学会喂上下文,是用好 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 截图改前端 + 性价比,真香
工具始终是工具,用法对了,效率翻倍。用法不对,就是给自己挖坑。