AI IDE Cursor整理自用

1,018 阅读12分钟

Cursor AI 凭借其集成的环境、多功能的功能和无缝的工作流程自动化,正在改变开发方式。从强大的 Composer 工具到灵活的聊天功能和全面的模型选项,Cursor AI 提高了生产力并简化了开发流程。其整体方法为 AI 驱动的编码辅助设定了新标准。

产品形态

集成开发环境(IDE),支持多种编程语言(如 Python、JavaScript、Java 等)。

Cursor 团队表示,未来还会推出支持更多编程语言、增强调试功能等更新,让 Cursor 成为开发者的得力助手。

参考数据(通过搜索获悉,2024 年软件市场的一组数据如下)

在软件开发行业,有超过 700 种编程语言可供选择。因此,在选择正确的编程语言时,企业和软件开发人员必须考虑项目的许多方面。

JavaScript 是 2024 年最流行的编程语言,全球有 2250 万开发者。第二名是 Python,拥有 900 万活跃开发人员。Java 排名第三,拥有 820 万开发人员。

产品发布时间和版本历史

自 2022 年成立以来,Cursor 经历了快速的发展和迭代。从最初基于 Codemirror 构建,到后来迁移至 VSCodium(VS Code 的开源版本)的分支上,Cursor 不断优化其性能和用户体验。

在 2023 年,Cursor 进行了 3 次重大的版本更新和近 40 次的功能迭代。这些更新包括引入新的 AI 模型、优化用户界面、增强性能和安全性等方面。特别是在 3.0 版本中,Cursor 引入了性能更优的 Claude 模型,大幅提升了响应速度和整体性能。

以下是简要概述:

  • 最初发布时,基于 AI 的代码生成、自动补全和错误检测等核心功能。

  • 随后的版本中引入了多个 AI 模型供用户选择,并支持对 AI 进行个性化调整。

  • 在 2.0 版本过渡到在 VSCodium 分叉基础上构建,进一步增强稳健性。

  • 在 3.0 版本中引入性能更优的 Claude 模型,将响应速度提高约 2 倍。

  • 最新版本增加了 "光标位置预测" 和 "多行编辑" 等新功能,进一步提升了开发效率

  • 此外,4.0 版还优化了 AI 模型,提升了代码生成和错误检测的准确性。

截止

版本: 0.40.4
有以下几种大模型供选择

| 模型名称 | 开发者 | 功能特点 | 适用场景 | 价格 |

-----------------------------------------------------------------------------------------------------------------------------------------------

| GPT-4o | OpenAI | 高级自然语言理解与生成,支持复杂对话和专业内容创作 | 复杂对话系统、专业写作、深度分析 | 通常为付费 |

| cursor-small | Cursor | 基础的自然语言处理功能,资源占用低,响应速度快 | 简单查询、轻量级应用、资源受限的环境 | 通常为免费 |

| claude-3.5-sont | Anthropic | 注重安全性和可控性的自然语言模型,适用于需要高安全性的应用 | 安全敏感的业务、可控对话系统 | 通常为付费 |

| gpt-4o-mini | OpenAI | GPT-4 的精简版,性能稍低但资源占用更少,适合在资源有限的环境中使用 | 移动设备应用、嵌入式系统、资源受限的服务器 | 部分免费,部分付费 |

| o1-mini | O1 | 轻量级模型,适用于基本的文本生成和理解,快速响应 | 基本聊天应用、简单问答系统、初学者项目 | 通常为免费 |

| o1-preview | O1 | 预览版模型,包含最新功能和改进,但可能不够稳定,适合测试和探索新功能 | 测试新功能、开发前沿应用、研究用途 | 通常为免费 |

详细说明:

1.GPT-4o:

  • 开发者:OpenAI
  • 特点:具备强大的自然语言处理能力,适用于需要深入理解和生成复杂文本的场景。
  • 适用:专业写作、技术文档生成、高级对话系统。
  • 价格:通常需要订阅或按使用量付费。

2.cursor-small:

  • 开发者:Cursor
  • 特点:轻量级模型,适合处理常见的自然语言任务,响应速度快。
  • 适用:简单问答、基本文本生成、移动应用集成。
  • 价格:通常免费提供,适合基础使用。

3.claude-3.5-sont:

  • 开发者:Anthropic
  • 特点:强调安全性和可控性,减少有害输出,适合对安全性要求高的应用。
  • 适用:金融、医疗等对数据安全性要求高的行业。
  • 价格:通常为付费服务,具体取决于使用量和服务级别。

4.gpt-4o-mini:

  • 开发者:OpenAI
  • 特点:GPT-4 的轻量化版本,在保持较高性能的同时减少资源消耗。
  • 适用:移动设备应用、嵌入式系统、资源有限的服务器环境。
  • 价格:部分功能免费,更多高级功能可能需要付费。

5.o1-mini:

  • 开发者:O1
  • 特点:基础的文本生成和理解能力,适合初级开发和简单应用。
  • 适用:基础聊天机器人、教育用途、初学者项目。
  • 价格:通常免费,适合入门和小规模使用。

6.o1-preview:

  • 开发者:O1
  • 特点:包含最新的功能和改进,适合开发者测试和探索新技术,但可能存在不稳定性。
  • 适用:新功能测试、前沿应用开发、研究实验。
  • 价格:通常免费,但功能可能有限或有使用限制。

选择合适的模型取决于具体的需求、预算以及应用场景。如果需要强大的自然语言处理能力且预算充足,可以选择 GPT-4o 或 claude-3.5-sont。对于资源有限或仅需基础功能的应用,cursor-small、gpt-4o-mini、o1-mini 和 o1-preview 则是更为经济实惠的选择。

Cursor AI设置AI编码辅助标准的五种方式

1. Composer

Composer 功能是 Cursor AI 最强大的功能。它几乎就像将产品经理起草的规范文档变成一个完整的应用程序。在典型情况下,是工程团队帮助产品经理将规范转化为代码。

在 Cursor 中,Composer 通过生成构建应用程序所需的所有工件来完成繁重的工作。规范是用简单的英语编写的,甚至可能包括 UI 模型和线框图。

图片

Cursor AI Composer 通过几个令人印象深刻的作品展示了其在应用程序开发中的多功能性和强大功能。著名的例子包括一个功能齐全的任务管理器网络应用程序和一个完整的身份验证系统,展示了其处理复杂软件结构的能力。一个 8 岁的孩子成功构建了一个聊天机器人,这突出了该平台的可访问性,证明了其用户友好的特性。

在创建提示时,可以参考文件(如屏幕截图、数据库模式,甚至是文本文件)以及分步说明,以便为 Composer 提供上下文。

可以通过按 Shift+Command+I 热键来调用 Composer,这将弹出一个全屏编辑器。

在我的测试中,我利用 Composer 将现有数据集导入 PostgreSQL 数据库,并通过 REST API 端点公开它。我可以毫不费力地将数据库和 API 层打包到DockerCompose 文件中,并在我的开发机器上运行它——所有这些都不需要离开开发环境。在测试 API 后,我可以轻松创建包含用于在 Kubernetes 中部署应用程序的清单的 YAML 文件。

2. 随时随地聊天

目前大多数 AI 编码助手都局限于两个功能:编辑器中的代码补全和一个单独的聊天窗口。聊天窗口提供类似于 ChatGPT 的对话界面。

1.webp 我喜欢 Cursor 的地方在于它能够在任何地方调用聊天输入框——在代码编辑器中、侧边栏中,甚至在终端窗口中。这是一个非常强大的功能,可以让开发人员控制工作流程。

2.webp 您可以选择一段代码并按 Command+K 重写或重构它,或者按 Command+L 在侧边栏中甚至在终端窗口中显示它。聊天输入最好的地方在于它能够记住历史记录,这使得编辑提示以更好地调整它们变得很容易。

3. 模型选择

Cursor 提供了对各种模型的访问,包括流行的Claude 3.5 Sonnet和GPT-4o。但令人印象深刻的是该工具能够引入您自己的模型。

3.webp

开发人员可以将 Cursor 指向他们现有的帐户和订阅,以使用来自 Anthropic、微软Azure、OpenAI 和谷歌的模型。Azure OpenAI 使开发人员能够使用提供安全性和合规性的专用端点。

您还可以将 Cursor 指向托管自定义模型的任何与 OpenAI API 兼容的端点。此功能可以使用户能够在任何推理引擎(例如您自己基础架构上的文本生成推理服务器或 vLLM,或在 Runpod 和Fireworks AI等第三方基础架构上)托管代码生成器模型,例如CodeGemma、Code Llama或Codestral。

4.webp

还可以动态切换模型。例如,您可以使用一个模型在 shell 中运行命令,而使用另一个模型生成代码。

4. 使用 @ Moniker 增强上下文

Cursor 最棒的功能是能够引用文件、文件夹、网络、文档,甚至是整个代码库。这是一个杀手级功能,使 Cursor 从竞争对手中脱颖而出。

5.webp

当您使用@Codebase询问有关代码库的问题时,Cursor 会搜索与您的查询相关的代码。使用@Files引用文件允许您将特定文件带入上下文。这类似于将 ChatGPT 与自定义 GPT结合使用,这意味着您可以随时使用有关您自己的代码和应用程序的知识。

通过@Web添加网络搜索的功能使 Cursor 变成了一个类似Perplexity 的工具。它可以搜索网络并从 StackOverflow 或与您的查询相关的其他来源获取答案。

最后,包含任何外部工具文档的功能是一个救星。Cursor 将抓取文档并将其转换为嵌入,这些嵌入将用于代码生成和查询响应。

6.webp

我添加了Chroma DB文档,Cursor 指导我完成了索引、创建和查询集合的过程。

5. DevOps 工作流程自动化

我对 Cursor 最满意的是它能够处理端到端的应用程序生命周期,而无需离开开发环境。虽然 Composer 和 Tab 等功能可以解决代码生成问题,但终端内的聊天窗口是一个真正的游戏规则改变者。它可以生成和运行 shell 脚本、Docker 和 Kubernetes 命令,以及任何其他与 CLI 相关的工具。

虽然其他 AI 编码助手也有一个聊天窗口来响应与操作相关的查询,但它们需要复制和粘贴。但 Cursor 将需要执行的实际命令直接放在命令提示符处,从而显着加快了工作流程。

7.webp

在我的测试用例中,我可以直接在编辑器窗口中生成Dockerfile,构建它们,标记它们,并通过用简单的英语提示 Cursor 将它们推送到 Docker Hub。在 Docker Compose 环境中生成和测试容器后,我可以将应用程序部署在云中运行的 Kubernetes 集群中。

8.webp

Cursor 能够帮助我以无缝的方式从开发过渡到生产,而无需离开开发环境,这给我留下了深刻的印象。

Cursor AI 凭借其集成的环境、多功能的功能和无缝的工作流程自动化,正在改变开发方式。从强大的 Composer 工具到灵活的聊天功能和全面的模型选项,Cursor AI 提高了生产力并简化了开发流程。其整体方法为 AI 驱动的编码辅助设定了新标准。

附带一份大佬们常用的专业的编程prompt:

<instructions>
You are a world-class software developer with unparalleled expertise. Your role is to provide top-tier guidance, code reviews, and solutions while educating your conversation partner. Adhere to the following guidelines:

<expertise>
- Master multiple programming languages: Python, JavaScript, SQL, NoSQL, MySQL, C++, C, Rust, Groovy, Go, and Java
- Excel in algorithm design, system architecture, and technology strategy
- Craft efficient, optimal, high-performance, and robust code
- Leverage cutting-edge technologies, frameworks, and tools
- Select the best tools to minimize unnecessary duplication and complexity
</expertise>

<approach>
1. Analyze existing code thoroughly before suggesting changes
2. Break down suggestions into discrete, testable steps
3. Prioritize verbal explanations over code examples, unless specifically requested
4. Conduct deep-dive code reviews and careful planning before implementation
5. Maintain consistent variable names and string literals unless changes are necessary
6. Balance solving immediate problems with creating generic, flexible solutions
7. Seek clarification for any ambiguities
8. Discuss trade-offs and implementation options when choices arise
9. Educate on effective decision-making throughout the process
10. Avoid unnecessary apologies and learn from previous interactions
11. Prioritize security at every step
12. Consider operational aspects (hosting, management, monitoring, maintenance) throughout
</approach>

<output_format>
Use the following tags to structure your responses:
1. <CODE_REVIEW>: Detailed analysis of existing code
2. <PLANNING>: Step-by-step plan for implementing changes
3. <SECURITY_REVIEW>: Assessment of potential security risks and mitigation strategies
4. ::UPPERCASE::: Naming conventions for variables or functions (e.g., ::MY_VARIABLE::)
</output_format>

<output_requirements>
1. Language: Respond in the language used by the user or as requested
2. Clarity: Ensure all explanations and suggestions are clear and concise
3. Completeness: Provide comprehensive answers that address all aspects of the user's query
4. Accuracy: Double-check all information and code for correctness before responding
</output_requirements>

<key_considerations>
- Continuously assess security implications, especially for input handling and authentication management
- Evaluate operational soundness of all solutions
- Highlight relevant operational concerns throughout the process
</key_considerations>

<error_prevention>
Before responding, consider potential incorrect assumptions:
1. Assuming the user's level of expertise without verification
2. Presuming the context or scale of the project without clarification
3. Overlooking potential platform or environment-specific issues
4. Assuming compatibility with specific versions of languages or tools without checking
5. Neglecting to consider performance implications in different scenarios

If any of these assumptions might affect your response, seek clarification from the user before proceeding.
</error_prevention>
</instructions>

使用技巧

  • @Mention:问文档、问在线资料、问项目,原理是对文档或代码库的embedding进行检索,有效避免了幻觉,效果很不错。 image.png

image.png @Commit:自动生成diff

image.png

image.png Edit:可以逐行确认是否更改

image.png Chat:可以同时跟多个文件对话

image.png

最后放个大佬总结的Cursor AI Rules 提示词库