1. 为什么 Rules 至关重要?如何用好 Rules?
什么是 Rules?
Cursor 的设计总监建议,使用 5~10 条 Rules,让 Cursor 了解你的项目结构和限制。通过 /generate rules
命令,可以快速生成基于你项目的 project specific rules。此外,GitHub 上也有 awesome-cursor-rules
这样的开源项目,提供了丰富的 Cursor Rules 示例。
为什么要用 Rules?
Rules 的作用是避免 AI 过度“聪明”,减少 AI 幻觉,让 AI 在特定范围内工作。
如何使用 Rules?
- 生成项目规则: 使用
/generate rules
命令,根据你的项目自动生成规则。 - 参考开源项目: 借鉴 GitHub 上
awesome-cursor-rules
项目中的规则。 - 手动添加规则: 根据项目特点,手动编写 project rules,并将其添加到项目中。
2. 如何编写清晰的提示词 (Prompt)?
为什么提示词很重要?
清晰的 提示词 能够显著提升 Cursor 的工作效果。不同的 提示词 会产生不同的结果,尤其是在处理新项目或老项目的特定需求时。
提示词应该包含哪些信息?
- 技术栈: 明确说明你使用的技术栈,例如:Python, JavaScript, React 等。
- 行为描述: 详细描述你希望 AI 执行的具体行为。
- 最终目的: 清楚地表达你希望达到的最终目标。
- 限制条件: 说明任何限制条件,例如:性能要求、安全要求等。
提升提示词效果的小技巧:
- Ask 模式转换: 在 Ask 模式下,将自然语言转换为结构化的 提示词。
- Agent 模式执行: 将结构化的 提示词 粘贴到 Agent 模式下执行。
3. 如何进行小力度修改和测试驱动开发?
小力度修改的优势:
建议以文件夹或文件级别进行小力度修改,避免一次性改动过多代码。
测试驱动开发 (TDD) 的重要性:
采用 测试驱动开发 (TDD) 的方式,让 Cursor 对其修改的内容进行测试,确保代码质量。
如何进行测试驱动开发?
- 先写测试用例: 在编写代码之前,先让 AI 帮你生成测试用例,考虑各种可能的场景。
- 运行测试用例: 确保所有测试用例都能通过,保证代码的健壮性。
4. 如何审查 AI 的输出并避免重复错误?
审查 AI 输出的重要性:
务必仔细审查 AI 生成的代码,确保其正确性和符合你的预期。对于没有编程经验的同学,建议学习一些软件开发和计算机通识课程。
如何避免 AI 犯重复错误?
- 提示词反馈: 如果 AI 犯了错误,通过 提示词 告诉它类似的问题以后应该怎么做。
- 生成规则: 让 AI 基于其犯的错误和修正方案,生成一条 Project Rules,并添加到项目中。
- 升级规则: 如果希望所有项目都避免该错误,将 Project Rules 升级为 User Rules。
例子:解决 Python 项目 pip install 缺少信任证书问题
- 问题: 使用
pip install
安装 Python 依赖时,出现缺少信任证书的错误。 - 解决方案: Cursor 自动感知到控制台错误,并给出正确的解决方案(添加信任证书参数)。
- 生成规则: 让 Cursor 基于该问题和解决方案,生成一条 Project Rules,确保后续项目使用
pip install
命令时,自动添加信任证书参数。
5. 如何利用上下文限定提高 Cursor 效率?
上下文限定的作用:
使用 @
符号来限定 Cursor 的上下文范围,例如:文件、文件夹、Git 提交记录等。
上下文限定的优势:
6. 如何使用 .cursor 目录进行项目管理?
.cursor 目录的作用:
在 .cursor
目录下,存放任务清单和设计文档,指示 Cursor 将项目做成什么样子,以及完成了哪些功能,还有哪些功能未完成。
如何使用 .cursor 目录进行项目管理?
- 创建任务清单: 列出需要完成的任务。
- 编写设计文档: 描述项目的设计和架构。
- 逐步完成任务: 不要一次性让 Cursor 完成所有任务,而是一个一个地完成,并进行阶段性测试和反馈。
与 Readme 和 No pass 的区别:
传统的做法是将任务和设计放在 Readme 文档或使用 No pass 工具进行管理。现在,Cursor 可以直接读取 .cursor
目录下的文档,更加方便。
7. 代码错误太离谱?自己动手!
什么时候应该自己写代码?
如果 AI 生成的代码错误太离谱,或者你需要花费大量时间去验证和修改 AI 生成的代码,不如自己直接写。
AI 的学习能力:
Cursor 会从你的修改中汲取经验,不断学习和改进。
例子:统一 HTTP 方法
- 问题: Cursor 生成的 Controller 代码使用了
PUT
、DELETE
等多种 HTTP 请求方法,而国内很多项目只使用GET
和POST
。 - 解决方案: 手动将所有
PUT
、DELETE
请求方法修改为POST
。 - 结果: 后续 Cursor 生成的 Controller 代码,都采用了与你一致的
POST
方法。
8. 如何利用聊天记录复用旧的提示语?
聊天记录的作用:
Cursor 会在项目级别保留所有的历史对话,方便你回溯和复用之前的 提示语。
如何利用聊天记录?
- 新建对话: 在做一个功能模块时,新建一个对话。
- 重命名对话: 将对话重命名为你的需求模块名称。
- 回退状态: 使用
restore checkpoint
功能,回退到某个对话之前的状态。
注意事项:
使用 restore checkpoint
功能时要慎重,因为可能会导致其他内容也一并回退。
版本管理的重要性:
善用版本管理工具,例如 Git,可以更好地管理代码变更。
9. 如何选择合适的模型?
模型选择:
Cursor 默认使用 Auto select
模型,也可以手动选择 Gemini
或 Cloud
模型。
- Gemini: 适用于高精度的问题。
- Cloud: 适用于范围广或写代码的场景。
让 AI 替你做决定:
可以让 AI 根据你的需求,自动选择合适的模型。
10. 如何粘贴文档链接?
粘贴文档链接:
直接粘贴文档的首页链接即可。可以手动刷新一下,让 Cursor 能够维持最新的文档内容。
11. 大项目先索引再动!
项目索引的重要性:
如果你的项目很大,Cursor 需要花费较长时间进行索引。
等待索引完成:
在 Cursor 完成索引之前,不要开始工作。等待索引完成后,再开始使用 Cursor 进行开发。
总结:Cursor 使用心得
以上是对 Cursor 使用技巧的总结,涵盖了 Rules 的重要性、清晰提示词的编写、小力度修改和测试驱动开发、AI 输出的审查、上下文限定的使用、.cursor 目录的项目管理、聊天记录的复用、模型的选择、文档链接的粘贴以及大项目索引的注意事项。
我认为:
Cursor 就像一把锋利的宝剑,用好了可以披荆斩棘,事半功倍;用不好则可能伤及自身。切不可盲目迷信 AI,而应该将其视为辅助工具,不断学习和实践,才能真正发挥其潜力,提高开发效率。正如鲁迅先生所说:“拿来主义”,我们需要批判性地吸收 Cursor 的优点,结合自身经验,形成一套适合自己的 AI 辅助开发流程。