如何让开发效率起飞?Cursor 必知必会!

1)写在前面

本文更注重实战应用,主要探讨如何让开发流程更为丝滑。文中使用的编程 IDE 是 Cursor v0.47,如果你还是低版本建议升级,建议进行如下配置可以更早的获取新版本:

image

2)Cursor 设置

Auto Model:自动选择更高效模型

Cursor v0.47 版本支持自动选择模型,在一定程度上提升了沟通效率。例如,遇到简单问题时可能不会使用推理模型。就目前的使用体验而言,相比直接选择 claude-3.7-sonnet-thinking,确实减少了一些‘想太多’的情况。

image

Cursor Rules :保证代码生成质量

Cursor Rules 分为两个级别。

User Rule(全局规则)

在最新版本中被放在了 Cursor Setting -> Rules 中,如果想指定包含在每个项目中的规则(如输出语言、响应长度、统一规范等),这非常有用。

Project Rule(项目规则)

image

点击 Add new rule 按钮后,我们会进入到如下页面:

image

Rule Type:规则生效的模式:

  • Always:表示每次对话都自动携带;
  • Auto Attached:文件类型自动匹配,根据后方的 File pattern matches 规则匹配对应文件生效;

image

  • Agent Request:交给 Agent 判断是否生效规则, 需要添加对应的 Description 信息;

image

  • Manual:需要手动 @。

应用实践

这里我也举个实际的例子,比如在一个前端项目,我们可以把 UI设计原则写到其中:

image

若您不知道如何编写优质的 Rules,可参考:https://Cursor.directory/rules。

还有一点需要注意的,检查一下你的项目中有没有使用.Cursorrules ,建议替换为 project rules,官方后续会逐步移除掉 .Cursorrules 的用法,官方文档如下**:**

For backward compatibility, you can still use a .Cursorrules file in the root of your project. We will eventually remove .Cursorrules in the future, so we recommend migrating to the new Project Rules system for better flexibility and control.

Auto-Run:减少不必要的确认

开启 Auto-Run 模式后,Agent 可以自行执行终端命令,在一些需要连续工具调用的场景很有用;

场景

  • git 提交时,它会执行 git status -> git add . -> git commit -> git push 等多个命令,每个都需要我确认,但这不是我需要的;
  • 在它排查问题时,偶尔会通过 lscat 等命令查询一些文件、代码,这类查询无需向我确认。

配置:

Auto-run prompt: 我填写的是 Just query commands, git commands and other security commands,大家可以参考。

Command denylist:可以根据实际情况添加,或者出现了一些不符合预期的自动调用后再补充上。

MCP tools protection: 如果你的 MCP 提供的都是一些查询类的、安全的工具那么可以开启。

image

Large context:缓解 Cursor “变笨”

大部分情况下,如果我们觉得 Cursor “变笨”了甚至出现,原因可能是 上下文达到上限忽略了一些信息。官方也考虑到了这个问题,提供了 large context 选项。

就目前对该功能的测试而言,我尚未发现效果上有明显差异。不过官方论坛称其能够容纳更大的上下文,感兴趣的小伙伴不妨一试。

image

3)聊天技巧

上面介绍了一些全局的配置,这里在补充一下对话级别的技巧。可以看到下面对话框中 @ 出来的选项,接下来讲解我们最常用的。

image

Docs:记录常用文档

我们可以把项目常用知识,工具的使用文档保存到 Docs(公网可访问)。比如一个微信小程序的开发项目就可以把 微信官方的一些开发文档 添加进来,在使用时通过 @Docs 快速注入上下文。

Notepads:记录常用提示词

Notepads 像是一个便签,记录我们可以复用的 prompt,比如:代码模版、回答要求…

我自己常用的 Notepads 也分享一下:

场景Notepads提示词解决的问题
提示词给的任务量较大的情况请拆分任务,执行完上一个任务再开始下一个任务,每一个任务完成需要跟我确认是否继续{当前任务逻辑}- 生成质量更好


- 可控性更高:可以选择性的只执行部分任务
接入外部接口时先写一个初版,编写测试代码测试接口联通性{接口文档链接}- 快速得到可用版本:Agent会不断运行测试,根据日志调整代码。
简单问题解决这是一个简单的问题,不要想太多,如果你其他想法或建议需要向我确认是否执行{问题描述}- 解决大模型想太多的问题

Past chats:缓解上下文长度

因为上下文长度的硬性限制,聊天最终会变得卡顿或者达不到预期,这时候我们可以通过 新建对话+ @Past chats 引入以前的对话历史总结信息(v0.47 版本前叫 summary composer)

image

Web:快速联网搜索

自动:

image

手动:

联网搜索,如果需要一些实时的资料可以手动加上 @web

  1. 跨项目访问

不知道你有没有遇到过私有仓库无法访问的问题,如下:

image

Cursor 无法访问 Codeup 中的Apple SDK,整个自动编码流程卡住了,我这里提供一种快速的解决方案,利用 cursor 的 workspace,具体步骤如下:

  • 通过 File -> Save Workspace As… 创建 workspace

image

  • 通过 File -> Add Folder to Workspace… 添加其他包到 workspace

image

  • Cursor -> Cursor Setting -> Feature -> Codebase indexing 处重建索引

4)MCP :构建信息桥梁

在开发阶段,我们的时间主要集中在 IDE 中,但也需要查询 飞书项目、飞书文档 里的需求或技术方案,过程中还可能会用到 google、代码生成命令行工具 等,最终通过 git 命令行工具 进行代码提交。

可以看到我们使用到的平台和工具较多, 如果将更多的时间聚焦到 IDE 上,那么研发效率上也会有相应的提升。

暂时无法在飞书文档外展示此内容

如何使用MCP

  1. 找到合适的MCP工具

    这里推荐几个不错的 MCP 网站

地址特点
https://smithery.ai/可以通过自然语言查找想要的mcp,复杂命令便捷
https://glama.ai/mcp/servers分类清晰
https://mcp.so/官方内容
  1. 如何在 cursor 中使用MCP

    我以 smithery.ai 网站中的MCP为例,我们找到合适的 MCP 后 Copy 它的 Cursor 配置。

image

  然后进入 Cursor Settings 页面,点击 `Add new global MCP server` 进入配置页面, 将👆 Copy 的配置粘贴即可。

image

如何理解MCP

这里简单介绍一下 开发MCP一定需要掌握的相关知识点

MCP 简介

原文地址

为了方便后续内容阅读顺畅,简单介绍一下 MCP:

MCP 协议遵循客户端-主机-服务器架构,其中每个主机可以运行多个客户端实例。该架构使用户能够跨应用程序集成 AI 能力,同时保持清晰的安全边界并隔离问题。MCP 基于 JSON-RPC 构建,提供了一个有状态会话协议,专注于客户端和服务器之间的上下文交换和采样协调。

其架构如下:

image

传输机制

而主机与客户端间的传输机制有 Command 和 SSE 两种。

  • Command

客户端将 MCP 服务器作为子进程启动,通过标准输入输出进行交流

image

  • SSE

SSE 全称是 Server-Sent Events,是一种 HTTP 服务器推送技术,允许服务器向客户端发送实时更新。在 MCP 的 SSE 传输机制中,服务器作为独立进程运行,可以处理多个客户端连接。

首先服务器必须提供两个端点:

  1. SSE 端点 - 用于客户端建立连接并接收来自服务器的消息
  2. HTTP POST 端点 - 用于客户端向服务器发送消息

当客户端连接时,服务器必须发送一个包含客户端用于发送消息的 URI 的 endpoint 事件。所有后续的客户端消息必须作为 HTTP POST 请求发送到此端点。服务器消息作为 SSE message 事件发送,消息内容以 JSON 格式编码在事件数据中。

image

总体而言,SSE 能够支持多个客户端,使用起来更为简便,并且可以统一处理权限相关逻辑;而 Command 则更适合用于一些本地工具和通用接口的调用。

资源类型

MCP Server 可以提供三种主要类型的功能:

  • 资源(Resources):可以被客户端读取的类文件数据,如 API 响应或文件内容。
  • 工具(Tools):可以被 LLM 调用的函数,需要用户批准。
  • 提示(Prompts):预先编写的模板,帮助用户完成特定任务。

如何开发一个MCP

因为内容较多,准备单独写一篇文章,敬请期待。


🙏 对 AI、Devops、架构等感兴趣的小伙伴可以关注我的公众号“二进制茶馆”,获取实时资讯和学习资料

### SonarQube Cursor Rule 插件信息 SonarQube 的插件架构允许开发者创建自定义规则来扩展平台的功能。对于 `cursor rule` 相关的信息,可以从多个方面进行探讨。 #### 插件结构与实现方式 在分析 `sonar-checkstyle plugin` 和 `sonar-findbugs plugin` 时发现,这些插件遵循相似的设计模式[^1]。具体来说: - **规则定义**:通过配置文件或编程接口定义新的静态分析规则。 - **规则执行器**:负责遍历项目中的代码单元并应用相应的规则逻辑。 - **报告生成器**:收集违规记录并将它们转换成适合展示的形式。 针对 `cursor rule` 特定功能,在源码中可以找到如下路径 `src/backend/commands/explain.c` 中涉及到了命令解析部分的工作流[^2]。然而需要注意的是,“cursor rule” 并不是一个标准术语;如果是指基于游标的查询机制,则可能涉及到数据库操作或其他上下文敏感的处理过程。 #### 加载 Profile 类型 当提到像 FindBugs 这样的工具集成到 SonarQube 后端服务里时,会遇到两个重要的组件——`FindbugsProfileExporter` 和 `FindbugsProfileImporter`[^3]。这两个类用于管理规则集(profiles),即一组预设好的质量检查准则集合。虽然这里讨论的对象不是直接关联于所谓的 “cursor rules”,但是理解如何管理和交换这样的规则集有助于开发类似的特性。 为了更精确地定位有关 cursor rule 的细节,建议深入阅读目标插件的具体文档以及其 GitHub 仓库里的 README 文件和其他说明材料。通常情况下,官方指南是最权威的消息来源之一。 ```java // 示例 Java 代码片段显示了如何注册一个新的 Quality Profile 导入导出处理器 public class CustomRuleSetHandler { public void register() { // 注册一个新类型的profile处理器... } } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值