最近一直在学习 Cursor 的使用技巧,看到了很多
cursor
的使用文章,我也做了一些总结分享给大家
简介
Cursor不仅仅是一个代码编辑器,对我来说,他是比ChatGPT和Claude都更强大的写作工作。可以任意打开一个文本实现所见即所得的写作与编辑,Cursor的优势:
-
无缝集成AI:AI功能完全融入写作流程,使用自然顺畅。
-
实时互动:可以随时调用AI进行各种写作辅助。
-
全程可控:用户可以自由选择是否采纳AI的建议。
-
多样化辅助:从选题到校对,覆盖写作全过程。
-
高效便捷:大大提高写作效率,节省时间和精力。
-
灵活修改:直接在文档中进行修改,无需在多个界面间切换。
Cursor 的具体功能
-
智能代码补全:Cursor 提供智能代码补全功能,能够根据上下文自动建议代码片段,减少手动输入的时间。
-
实时错误检查:在编写代码时,Cursor 会实时检查语法错误并提供修复建议,帮助用户快速纠正错误。
-
多语言支持:支持多种编程语言,用户可以在同一平台上进行不同语言的开发,提升工作效率。
-
版本控制集成:与 Git 等版本控制系统无缝集成,方便用户管理代码版本和协作开发。
使用场景
-
初学者学习:对于编程初学者,Cursor 提供了友好的界面和丰富的学习资源,帮助他们快速上手。
-
团队协作:在团队项目中,Cursor 的实时协作功能使得多名开发者可以同时编辑同一文件,提升团队效率。
-
快速原型开发:开发者可以利用 Cursor 的快速代码生成和修改功能,快速构建和迭代原型。
Cursor 使用技巧
1. 快捷键优化
提高工作效率的常用快捷键:
Cmd/Ctrl + I:触发 AI 补全
Cmd/Ctrl + L:选择当前行
Cmd/Ctrl + Shift + P:命令面板
Alt + Z:切换自动换行
Cmd/Ctrl + K:快速跳转到定义
Cmd/Ctrl + Shift + F:全局搜索
2. 代码片段管理
Cursor 支持创建和管理代码片段,可以快速插入常用的代码模板:
// 示例:React 组件模板const ComponentTemplate = `import React from 'react';interface Props { // 属性定义}export const Component: React.FC<Props> = (props) => { return ( <div> {/* 组件内容 */} </div> );};`;
3. AI 辅助调试技巧
使用 AI 帮助定位和解决问题:
调试提示词模板:
请分析以下错误信息和相关代码:
1. 错误原因分析
2. 可能的解决方案
3. 预防类似问题的建议
错误信息:
[粘贴错误信息]
相关代码:
[粘贴相关代码]
实用场景示例
1. 代码重构
当需要重构现有代码时,可以使用以下提示词:
请帮助重构以下代码,要求:
1. 提高代码可读性和可维护性
2. 优化性能
3. 添加适当的错误处理
4. 补充必要的注释
5. 遵循最佳实践
代码:
[在此粘贴需要重构的代码]
2. 单元测试生成
快速生成单元测试用例:
请为以下代码生成单元测试:
1. 覆盖主要功能点
2. 包含边界条件测试
3. 添加异常情况测试
4. 使用 Jest 框架
代码:
[在此粘贴需要测试的代码]
3. 文档生成
自动生成代码文档:
请为以下代码生成详细的文档:
1. 功能说明
2. 参数描述
3. 返回值说明
4. 使用示例
5. 注意事项
代码:
[在此粘贴需要生成文档的代码]
团队协作最佳实践
1. 统一配置
推荐在团队中统一使用以下配置:
# team-cursor-config.yamleditor: formatOnSave: true tabSize: 2 insertSpaces: trueai: codeStyle: 'team-standard' autoComplete: true suggestionTimeout: 3000
2. 代码审查流程
利用 Cursor 的 AI 功能优化代码审查:
-
使用 AI 预检查代码
-
自动生成变更说明
-
识别潜在问题
-
提供改进建议
3. 知识共享
建立团队共享的提示词库:
# 团队提示词模板库
templates/
├── code-review.md
├── test-cases.md
├── documentation.md
├── refactoring.md
└── performance-optimization.md
性能优化建议
1. 编辑器性能
-
定期清理缓存
-
关闭不必要的插件
-
优化工作区文件数量
2. AI 响应优化
-
使用精确的提示词
-
设置合理的超时时间
-
避免过大的代码块
常见问题解决
1. AI 响应慢
-
检查网络连接
-
清理编辑器缓存
-
优化提示词长度
-
使用更精确的描述
2. 代码补全不准确
-
提供更多上下文信息
-
使用类型注释
-
更新 AI 模型版本
3. 配置同步问题
-
使用版本控制管理配置
-
定期备份设置
-
使用团队共享配置
Prompt
什么是 Prompt? Prompt 词译为提示词,在使用智能助手中可以理解为给 AI 模型的指令。Prompt 可以是一个问题、一段文字描述,甚至可以是带有一堆参数的文字描述。当提供一个具体的提示或问题时,可以让AI模型更准确地生成相关的文本、图片或表格等内容。例如,如果我们要让 AI 模型生成一篇关于健康饮食的文章,我们可以提供一些问题或关键词,如:什么是健康饮食?哪些食物是健康的?如何保持健康的饮食习惯?然后,AI 模型可以通过对这些问题的分析和理解,生成一篇详细的文章,介绍健康饮食的重要性、健康饮食的组成和建议等内容。此外,我们还可以通过提供具体的图片或表格等内容,让 AI 模型生成相关的内容,以更加生动形象地展现我们想要表达的信息。
为什么要掌握 Prompt ?
如果只是想要简单的答案,那么只需要在智能助手中输入文字即可,但如果想要获得满意且精确的答案,就需要用到 PE 技术。比如下面的 Prompt:
让帮你写一篇Python 文章
角色:你是一位专注于为初学者或对Python知识了解甚少的读者编写详细的Python技术文章作者
背景:公众号平台有大量的技术小白想学习python,他们从通过公众号平台学习Python技术
任务:我将发送一个标题或者技术概念给你,请你根据这个标题写出一篇1500字技术文章。
要求:
1. 你的文章应聚焦于以易于新手理解的方式详细介绍技术概念和技巧。
2. 每篇文章需要全面,至少包含1500字,并且提供不少于3个代码示例来帮助读者加深理解
3. 写作风格应简明易懂,尽量避免使用技术术语。
4. 你的回应,包括文章写作、对话和其他沟通,都将使用中文。
开发一个语音笔记
你是一个出色的iOS工程师,我们目前新建了一个 iOS app项目,叫VoiceMemo,你现在正在这个项目的根目录,请帮助我完成这个app的开发。
## App功能说明
1、录音功能:用户可以通过点击界面底部的录音icon,将开启录音;
2、录音转文字:录音结束后请通过声音转文字AI将用户的声音转化为文字,并呈现在界面上;
3、文字润色:将声音转文字AI转录的文字发送给另一个文本处理类AI,这个会润色加工直接转录的文本,减少错别字,形成更流畅的文本;并提出关于这个话题的下一步思考方向,并以“#标签”的格式提供三种相关标签。
## App界面说明
1、首页:提供录音入口,并展示录音完成后AI转录的文本和AI润色后的文本;
2、历史:历史界面保存用户每一次录音的内容,包含录音文件、AI转录的文本���AI润色后的文本,每个历史记录都用一个组块展示,按时间倒序排列。
3、我的:这个界面的功能待定。
## 相关信息
1、录音转文字API文档:https://docs.pfinalclub.cn/api-reference/audio/create-audio-transcriptions
2、文字润色处理API文档:https://docs.pfinalclub.cn/api-reference/chat-completions/chat-completions
3、API key:【填入你通过https://pfinalcloud.cn/i/FuAPK085 申请的自己的API KEY】
现在请作为产品经理,先写一个readme文档并保存在根目录,阐述你对我的需求的理解,以及实现方式,下一步计划等,然后开始编程,设计这三个界面和功能。
上面的提示词可以快速的 帮你通过 AI 来完成项目, 只需要修改一下 错误 或者异常 项目就能发版了.
如何创建良好的 AI Prompts?
通常来讲,一个好的 AI Prompt 不仅要满足用户的意图,而且还要超越他们的期望,创造出超出预期的内容。同时,应该开辟新的可能性,激发用户创造出独特和个性化的内容。此外,出色的 AI Prompt 几乎不需要或几乎不需要后期处理,从而使输出更加高效和有效。
以下是一些给
Ai
模型正确提示的技巧,帮助大家得更好的结果反馈,具体如下所示:
1、深入理解用户意图
确保 Prompt 词能够准确地传达我们所希望实现的目标和意图,从而有助于模型更好地理解并满足我们所设想的需求。
2、创造性思考
尝试提供创新和富有创造力的 Prompt ,以激发模型产生超出常规的、独特的内容。引导模型超越基本答案,探索更深入和有趣的想法。
3、提供详细上下文
为了帮助模型更好地理解问题或任务,Prompt 尽可能提供相关的背景信息和上下文,从而有助于模型生成更准确和相关的回答。
4、避免歧义和模棱两可的语言
使用清晰明确的语言表达我们的问题或指令,避免使用含糊不清或模棱两可的词句,以减少模型的困惑。
5、引导模型思考:尝试通过 Prompt 引导模型进行推理和思考,以促使其产生更具深度和逻辑性的响应。提供合理的线索和指导,以帮助模型形成有条理的回答。
6、检查和修正:阅读生成的响应并进行适当的检查,根据需要进行必要的修正,从而有助于确保输出的准确性和可理解性。
通过遵循这些 Prompt,我们可以引导 很多模型生成出色的响应。需要注意的是,与模型的交互是一个持续的过程,通过不断尝试和改进提示,我们可以获得更高质量的结果,并创造出独特而令人满意的内容。
.cursorrules 文件
什么�� .cursorrules ?
.cursorrules 是一个存放在项目根目录的特殊文件,用于自定义 Cursor 中的 AI 辅助规则。
简单来说,.cursorrules 是您与 AI 之间的"沟通桥梁"。有了它,您不必每次都手动调整 AI 的行为,AI 将始终在您的项目需求范围内提供建议。
如何在项目中使用 .cursorrules?
1)创建文件: 在项目根目录创建 .cursorrules 文件。 2)定义规则: 按照上文的建议,定义项目背景、编码标准和文件结构等规则。 3)重启 Cursor: 在 Cursor 中,重启 AI 助手以加载新的 .cursorrules 文件。 4)实时调整: 当项目需求发生变化时,及时更新 .cursorrules 文件。
利用“AI 规则”实现全局控制?
Cursor 提供了全局的AI配置提示词。
配置的位置:File -> Preferences -> Cursor Settings -> Rules for AI
1.大佬写的 cursorrules
# Role
你是一名极其优秀具有20年经验的产品经理和精通所有编程语言的工程师。与你交流的用户是不懂代码的初中生,不善于表达产品代码需求。你的工作对用户来说非常重要,完成后将获得10000美元奖励。
# Goal
你的目标是帮助用户以他容易理解的方式完成他所需要的产品设计和开发工作,你始终非常主动完成所有工作,而不是让用户多次推动你。
在理解用户的产品需求、编写代码、解决代码问题时,你始终遵循以下原则:
## 第一步
- 当用户向你提出任何需求时,你首先应该浏览根目录下的readme.md文件和所有代码文档,理解这个项目的目标、架构、实现方式等。如果还没有readme文件,你应该创建,这个文件将作为用户使用你提供的所有功能的说明书,以及你对项目内容的规划。因此你需要在readme.md文件中清晰描述所有功能的用途、使用方法、参数说明、返回值说明等,确保用户可以轻松理解和使用这些功能。
## 第二步
你需要理解用户正在给你提供的是什么任务
### 当用户直接为你提供需求时,你应当:
- 首先,你应当充分理解用户需求,并且可以站在用户的角度思考,如果我是用户,我需要什么?
- 其次,你应该作为产品经理理解户需求是否存在缺漏,你应当和用户探讨和补全需求,直到用户满意为止;
- 最后,你应当使用最简单的解决方案来满足用户需求,而不是使用复杂或者高级的解决方案。
### 当用户请求你编写代码时,你应当:
- 首先,你会思考用户需求是什么,目前你有的代码库内容,并进行一步步的思考与规划
- 接着,在完成规划后,你应当选择合适的编程语言和框架来实现用户需求,你应该选择solid原则来设计代码结构,并且使用设计模式解决常见问题;
- 再次,编写代码时你总是完善撰写所有代码模块的注释,并且在代码中增加必要的监控手段让你清晰知晓错误发生在哪里;
- 最后,你应当使用简单可控的解决方案来满足用户需求,而不是使用复杂的解决方案。
### 当用户请求你解决代码问题是,你应当:
- 首先,你需要完整阅读所在代码文件库,并且理解所有代码的功能和逻辑;
- 其次,你应当思考导致用户所发送代码错误的原因,并提出解决问题的思路;
- 最后,你应当预设你的解决方案可能不准确,因此你需要和用户进行多次交互,并且每次交互后,你应当总结上一次交互的结果,并根据这些结果调整你的解决方案,直到用户满意为止。
## 第三步
在完成用户要求的任务后,你应该对改成任务完成的步骤进行反思,思考项目可能存在的问题和改进方式,并更新在readme.md文件中
如何为项目创建最佳的 .cursorrules?
- 提供项目背景
原因:
AI 不了解项目的背景或者角色,而背景信息可以帮助 AI 理解项目的上下文,生成更合适的代码。
示例:
# 背景
这是一个基于 Python 的支持多语言的博客 Web 应用程序,使用 Django 框架编写。
解释: 在 .cursorrules 文件的开头,您可以提供一个简要的项目背景介绍。像“这是一个基于 Python3 的博客 Web 应用程序” 这样的描述可以让 AI 在生成代码时,选择适合的语法风格、文件类型和方法。
- 定义编码标准
原因:
确保 AI 生成的代码符合团队的代码规范,避免不一致的编码风格。
示例:
# 编码标准
- 使用精确的 Django 示例编写清晰的技术响应。
- 尽可能使用 Django 的内置功能和工具来充分利用其全部功能。
- 优先考虑可读性和可维护性;遵循 Django 的编码风格指南(符合 PEP 8 标准)。
- 使用描述性变量和函数名称;遵守命名约(例如,函数和变量使用小写字母加下划线)。
- 使用 Django 应用以模块化方式构项目,以促进可重用性和关注点分离。
Django/Python
- 使用 Django 的基于类的视图 (CBV) 实现更复杂的视图;更喜欢使用基于函数的视图 (FBV) 实现更简单的逻辑。
- 利用 Django 的 ORM 进行数据库交互;除非出于性能需要,否则避免使用原始 SQL 查询。
- 使用 Django 的内置用户模型和身份验证框架进行用户管理。
- 利用 Django 的表单和模型表单类进行表单处理和验证。
- 严格遵循 MVT(模型-视图-模板)模式,明确分离关注点。
- 明智地使用中间件来处理交叉关注点,如身份验证、日志记录和缓存。
错误处理和验证
- 在视图级别实现错误处理并使用 Django 的内置错误处理机制。
- 使用 Django 的验证框架来验证表单和模型数据。
- 首选 try-except 块来处理业务逻辑和视图中的异常。
- 自定义错误页面(例如 404、500)以改善用户体验并提供有用的信息。
- 使用 Django 信号将错误处理和日志记录与核心业务逻辑分离。
解释: 这段代码告诉 AI,团队更喜欢 Django 的内置功能和工具来充分利用其全部功能.使用描述性变量和函数名称;遵守命名约定
- 指定首选的库和框架
原因: 如果 AI 不了解您首选的库,它可能会生成不适的第三方依赖项。
示例:
依赖项
- Django
- Django REST 框架(用于 API 开发)
- Celery(用于后台任务)
- Redis(用于缓存和任务队列)
- PostgreSQL 或 MySQL(用于生产的首选数据库)
这告诉 AI 在生成导航代码时优先使用 Django REST 框架 数据库,缓存等 依赖
- 提供文件结构信息 原因: 清晰的文件结构可帮助 AI 生成的文件路径和导入路径更准确,减少路径错误。
示例:
# 文件结构
- components: 可复用的 UI 组件
- app/[locale]: 支持多语言的页面
- data/blog: 多语言的博客文件
- app/api: API 服务函数
解释: 告诉 AI 文件的目录结构有助于自动生成 import 路径。例如,当您要求 AI 创建一个新组件时,它会将其放入 components 目录,而不会错误地将其放入 pages 中。
- 设置性能优化指南 原因: 如果您不告诉 AI 关注性能,它可能会生成不符合性能最佳实践的代码。
示例:
性能优化
- 使用 Django ORM 的 select_related 和 prefetch_related 优化查询性能,以便获取相关对象。
- 使用具有后端支持的 Django 缓存框架(例如 Redis 或 Memcached)来减少数据库负载。
- 实施数据库索引和查询优化技术以获得更好的性能。
- 使用异步视图和后台任务(通过 Celery)进行 I/O 密集型或长时间运行的操作。
- 使用 Django 的静态文件管理系统(例如 WhiteNoise 或 CDN 集成)优化静态文件处理。
解释: 这些规则可帮助 AI 生成更高效的代码。
- 设置错误处理偏好
原因: AI 可能不会自动考虑错误处理逻辑。
示例:
错误处理和验证
- 在视图级别实现错误处理并使用 Django 的内置错误处理机制。
- 使用 Django 的验证框架来验证表单和模型数据。
- 首选 try-except 块来处理业务逻辑和视图中的异常。
- 自定义错误页面(例如 404、500)以改善用户体验并提供有用的信息。
- 使用 Django 信号将错误处理和日志记录与核心业务逻辑分离。
更多精彩内容等你发现!关注【PFinalClub】 公众号,成为我们的一员,让我们一起在编程的海洋中探索、学习、成长!