Cursor 技巧和思路
核心功能
被动预测 & Tab 应用
- 根据上文代码,推理补全后续代码,按 Tab 键即可应用这些代码。
- 光标在代码中时,会自动预测需要修改的代码,按 Tab 键也可以应用这些修改。
Chat & Composer
可以从侧边栏中直接将文件和文件夹拖入对话窗口中。
- Chat 的快捷键是
CMD + L
,也可以选中一部分代码后再按CMD + L
,针对这段代码进行讨论,建议使用 OpenAI 4.0 或 4.0-mini,擅长分析需求。 - Composer 的快捷键是
CMD + I
,建议使用 claude-3.5-sonnet 模型,擅长具体的编程操作。 @Files, @Folders, @Code
用于将当前对话与相关上下文关联。@Docs
可以关联第三方文档,形成基于项目的私有知识库,Cursor 会自动抓取文档内容并加入索引纳入上下文。例如:接口文档、需求文档、库函数说明文档。- 注意:添加文档时,
https://docs.domain.com
只会索引单个页面,而https://docs.domain.com/
会索引页面链接中的其它内容。 - 在对话时,选择
@Docs
可以让 Cursor 基于文档生成对话的答案。
- 注意:添加文档时,
@https://docs.domain.com/index.html
可以使用临时链接,Cursor 在对话时会解析这个链接的内容。@Web
让 Cursor 除了上下文之外,还能通过网络搜索相关问题的答案。@Git
让 Cursor 根据 git 的常见命令执行一些任务,例如:对比两次 commit 的差异。@Notepad
可以保存笔记并与文件关联,供 Chat 和 Composer 使用。- 建议保存 AI 对话历史记录、项目相关上下文、临时的头脑风暴。
- 如果 Composer 的回答有 Bug,可以将问题记录到 Notepad 中,在 Chat 中引用该笔记进行询问。
@Codebase
根据完整的项目索引进行推理,排序后利用上下文给出最佳答案。- 建议在打开新项目时,使用 Codebase indexing 的 Resync Index 功能,重新采集上下文。
配置功能
.gitignore
和.cursorignore
配置不纳入索引的文件,这些文件在进行 codebase 操作时不会被采集。- Composer 可以帮助我们生成
.cursorignore
文件,通常.gitignore
已经足够,但也有特例,比如:IPDB 这种需要被 git 索引但不希望被 Cursor 索引的数据库文件。
- Composer 可以帮助我们生成
.cursorrules
作为全局上下文约束,可以配置角色能力、项目简介、目录结构、UI 框架、技术框架、代码规范(命名、组件、样式、国际化等)。
技巧和思路
最重要的是解决问题的思路,表达需求的能力以及架构能力。
如何防止修改的代码破坏已有功能
- 为了避免 Composer 返回的代码修改与预期不符,可以先点击 “Save all” 保存,预览并确认修改无误后再点击 “Accept all”。
- 在 Composer 的历史对话中,点击 “Restore” 可以将代码恢复到某个版本。
如何避免 AI 胡乱发挥
让 AI 更好地理解我们的需求。
- 提问后,先让 AI 复述需求,确认它已正确理解并能将需求拆解成任务。例如:xxxx。请复述我的需求并拆解成任务后再进行具体的代码修改。
- 明确改动的覆盖范围,尽量让需求简单明了。提供具体的文件、函数等,告诉 AI 在这些范围内进行修改。
@Files, @Folders, @Code
就是为此设计的。 - 可以提供自己的解决思路和代码示例,帮助 AI 更倾向于按照这个方向进行思考。
需求拆解
当需求较大时,可以先使用 Chat 模式或单独的 ChatGPT 进行讨论,将需求拆解为更小的 Feature,并记录到 Notepad 中,逐步投喂给 Composer。
合理利用 Chat 和 Composer
如前所述,Chat 和 Composer 使用不同的模型,各有优势。避免在 Composer 中反复调整代码,先把问题记录到 Notepad 中,再去 Chat 以该 Notepad 为上下文进行讨论。明确方案后再返回 Composer 进行下一步操作。
如何使用 Cursor 开发历史项目
- 打开项目后,首先进行 Codebase indexing 索引,让 Cursor 帮助生成
.cursorignore
文件,并根据需要进行优化。 - 根据项目创建
.cursorrules
文件,以确保 Cursor 输出内容与项目风格一致。 - 当需求出现时,与 Chat 进行沟通,理解需求后生成 Notepad,再将其投喂给 Composer 进行开发。
- 对于 Bug 修复,先与 Chat 沟通,提供 Bug 更新的上下文信息,让它给出解决思路。或利用
@Git
检索没有 Bug 的提交,Cursor 会对比差异并给出答案。同时在 Notepad 中详细描述 Bug 的原因和解决方案,再通过 Composer 引入该笔记进行代码修改。
用好 Notepad
对于大的需求和复杂的 Bug,应将其转化为 Notepad 记录,拆解成具体任务后,再投喂给 Composer 处理。避免在对话框中反复修改,使用 Markdown 格式文件可以更清晰地描述需求。
注意,Notepad 保存在 Cursor 的缓存中,最好定期将其整理到单独的文件中,并索引到 @Docs
。这些沉淀下来的资料和文档将有助于后续理解项目进展和解决类似问题。
Git
现在,Cursor 的 Git 功能可以根据历史 commit message 自动生成符合规范的提交信息。
提示词
提示词的描述要准确且详细,给出的细节越精确越好,这也是开发人员(AI)对产品经理的合理要求。
- 给图片增加抖动效果:提示词应包含抖动的描述、抖动速度和次数。例如:点击图片时出现抖动动画,动画角度范围为 0 到 2 度,动画持续时间为 300ms,每次点击抖动一次。
- 点击放大的交互:提示词应包含点击图片后放大到画面的具体位置、放大后的显示效果,以及如何退出放大状态。例如:点击图片后,图片放大至画面中心,放大时其他区域显示为灰色透明蒙版,点击蒙版区域可恢复原尺寸。
- 点击翻转的交互:提示词应包含点击翻转的时机、翻转角度、背景色、翻转后的尺寸。例如:当图片处于放大状态时,点击这张图片会出现 180° 的翻转动画,翻转后的背景为随机渐变色,翻转前后的尺寸保持一致。
链接
-
[(31) 普通人也可以看的 AI 编程指南 Cursor 教程|Cursor 使用技巧和思路|如何免费使用 Cursor|AI 编程](https://www.youtube.com/watch?v=lypPoT8lZ2M&t=2318s) - Awesome .cursorrules Files