Cursor使用分享

Cursor使用分享

官方定义

Cursor是一款全新的智能IDE,与AI无缝集成。

开发模式的改变

由高级语言过渡到自然语言(机器语言->汇编语言->高级语言->自然语言

graph TD
    subgraph "AI辅助编程模式"
        A2[开发者] -->|使用自然语言| B2[Cursor/AI工具]
        B2 -->|生成代码| C2[验证结果]
        C2 -->|反馈问题| A2
        A2 -->|迭代优化提示| B2
    end

    subgraph "传统编程模式"
        A1[开发者] -->|使用编程语言| B1[传统IDE]
        B1 -->|编写代码| C1[验证结果]
        C1 -->|发现问题| A1
    end

AI将会彻底改变而非简单替代开发者的工作方式,由此开发的门槛将会变低。以前经常说人人都是产品经理,以后可以说人人都是开发者。

Cursor逐渐模糊开发中的各种界限:

  • 语言:大家都是全栈开发人员,不再区分各种语言,是前端还是后端
  • 角色:产品、设计、程序员等都能编写软件

Cursor的最终目标

让世界上的任何人都更容易生产软件。

当然,还有很长的路要走,据Cursor创始人所言,目前只完成了愿景的2%到3%。

关于

版本相关信息 Cursor about

让Agent解释一下各组件之间的关系:

根据图片生成Cursor所使用到的开源组件之间关系的mermaid图,简要介绍每个组件,以md格式写入到docs目录下。

graph TD
    A[Cursor v0.49.2<br>现代化智能IDE]
    B[VSCode v1.96.2<br>核心编辑器框架]
    C[Electron v34.3.4<br>跨平台桌面开发框架]
    D[Chromium v132.0.6834.210<br>开源的浏览器项目]
    E[NodeJS v20.18.3<br>跨平台JavaScript运行时]
    F[V8 v13.2.152.41<br>JavaScript引擎]
    
    A --> B
    B --> C
    C --> D
    C --> E
    D --> F
    E --> F

应用场景

虽然Cursor是一个智能IDE,但并不是只能用来开发。

用Cursor打开你要工作的目录,这样它才会对你的目录有全面的了解,如果不放心可以先备份一下。

indexing

写作

基础能力,可以使用Web搜索,引用本地文件,@ url等来获取写作所需引用的资源。

强烈建议在完成文档编写后,让Cursor检查一下语句是否通顺。它只会对语法进行优化和修正错别字,不会对内容做大幅改动。

write

数据生成、分析、处理

生成语料、测试数据(造数)。

直接把文档给Cursor再告诉它你的需求。 目前只能处理文本文件(txt/markdown/csv/json/html等),对于word、excel、pdf等格式,Cursor会自动安装相应的Python库,通过编码来解决。

知识库

Cursor会对当前目录下的文件进行向量化后存储。

search content

search file

编程

演示,从硅基流动上获取一个免费的生图模型,给Cursor一个API文档链接让它生成一个支持全参数的生成图片的对话式页面。

第一个Prompt很重要,生成的原型要大体符合需求,后面优化起来才容易些。

image demo

四大对话模式

chat mode

Ask

Ask模式是Cursor中的"只读"对话模式,允许你通过AI搜索和查询代码库内容,但不会自动修改任何文件。

这种模式只说不做,相对于Agent没有"手脚"的能力, 拥有检索当前项目、访问Web的能力,但无MCP能力。

baidu hot search

适合分析、解读、学习项目,思考、探索、头脑风暴等不需要修改的场景。

Agent

Agent模式是Cursor中最自动化的AI编码模式,能够自主探索、规划并执行复杂的代码库变更,具备全工具访问和多步任务处理能力,支持MCP能力。

agent mode

能力

  • 自主操作:独立探索您的代码库,识别相关文件,并做出必要的更改
  • 全工具访问:使用所有可用工具进行搜索、编辑、创建文件和运行终端命令
  • 上下文理解:构建对您的项目结构和依赖关系的全面理解
  • 多步规划:将复杂任务分解成可管理的步骤并按顺序执行

内置工作流

  • 理解需求
  • 检索代码库
  • 制定计划
  • 执行计划
  • 验证结果
  • 任务完成

Manual

Manual模式是Cursor中用于精确、定向代码修改的模式,只根据用户明确指定的文件和指令进行编辑,不会自主探索或运行命令。

手动模式主要使用文件编辑工具。项目搜索代码库和终端工具已禁用。

此模式速度比较快,适合进行与此项目无关的对话或者你已经明确知道需要做什么的时候。

自定义模式

自由组合你想要的能力。

custom modes

内置工具列表:

all tools

模型选择

model select

在models模型列表里勾选后才能使用。

Auto:自动模式

Cursor帮你选择使用最合适的模型(平衡性能和精度),如果不知道怎么选就用这种模式。体验下来对话速度相对快一些,如果想要更强大的模型还是自己选择,不同模型之间的能力差别还是蛮大的。

Thinking

使用推理模型,非推理模型将不被使用。

特性

Tab

智能预测:预测下一步可能的代码 智能补全:根据上下文自动补全代码 多行修改:支持同时修改多行相似代码

甚至写代码的时候你可能会一路Tab,Tab,Tab体验非常丝滑。 同类产品中据说Cursor的Tab能力目前是最强的,它背后是由定制模型驱动的。

tab

局部编辑

选中要修改的文本块,使用快捷键Ctrl+k打开AI助手,支持连续对话:

  • Alt + Enter:快速获取AI回答,不会修改当前文本
  • Enter:让AI直接修改当前选中的文本

update2

多会话管理

multi tab

开启新会话的时机

  • 当新问题与当前会话上下文无关时
  • 当前会话无法得到满意答案时
  • 需要避免历史消息干扰时
  • 需要控制token消耗时

多会话操作

  • 快捷键:按住Alt键+点击加号或使用Ctrl+T
  • 支持多个会话并行处理不同任务
  • 每个会话独立维护上下文,互不影响

代码库索引

Cursor使用RAG(检索增强生成)技术来智能访问和理解代码库。

代码库会被自动向量化并存储在向量数据库中。当文件发生变化时,系统会自动进行增量更新,确保索引始终保持最新。

每十分钟检测一次,最大支持1000个文件,每个文件的大小限制未知。

可以通过.cursorignore文件配置来排除不需要被向量化的文件和目录,比如:

  • Node.js项目的node_modules目录
  • Python项目的.venv虚拟环境目录
  • 其他大型二进制文件或临时文件

code index

Rules

Rules 是 Cursor 中一个重要的功能设置项。它类似于 System Prompt,但提供了更大的灵活性,允许为不同的对话场景配置不同的规则。

当应用 Rule 时,它会被添加到模型上下文的开头,作为重要的提示信息。这种机制可以:

  • 增强模型的上下文理解能力
  • 引导模型生成更准确的回答
  • 确保回答符合项目的特定要求

通过合理配置 Rules,可以显著提升 AI 助手的表现,使其更好地适应不同的开发场景。

写好Rules

关于项目的信息,开发环境、技术框架、项目结构等。 一些优秀的Rules模板: Awesome-cursorrules

自动生成Rules

Agent根据当前项目情况自动生成合适的rules。

rules

在项目目录下的.cursor/rules目录下自动生成以mdc为后缀的rule文件。

Rule Type

四种类型,应用rules更加灵活

  • Always:总是应用到模型上下文中
  • Auto Attached: 设置文件名、后缀匹配规则
  • Agent Requested:给规则设置描述,Agent根据此描述来判断是否使用
  • Manual:对话时手动@此规则

rule types

自动生成 commit message

commit

Restore checkpoint

Git Commit + Restore checkpoint 大模型乱改了也不怕

  • 验证完一个功能就Commit一下
  • 大模型修改完如果不是你想要的就点击一下Restore checkpoint

强大的@能力

at

Cursor内置的工程能力,虽然有时候你不使用@功能Agent也能帮我们进行规划,但是使用@有很多好处:

  • 使大模型规划更加聚焦,减少不必要的反思步骤,避免乱改你的代码库
  • Agent快速定位关键位置,否则大模型会全局查找,而且很可能找错(如:名称相同的)
  • 明确告诉大模型你需要什么能力(如:shell,git,web等)

新开会话时会默认将当前打开的文件@进去。 如果新加的文件在@列表里没有找到可以直接拖进去。

@文件,目录,代码

Cursor还不能直接读取word,excel等格式的文件,需要转换为文本格式如:csv,json,html等。 前缀#可以更快速地选择文件,中间使用@#需要打一个空格。

这里的文件、目录、代码等是项目内的,项目外的需要借助Shell或者MCP服务来实现

整理目录文件的Demo: file tool


@文档

Cursor提供了一些官方文档,你还可以通过url新增自定义文档,类似知识库

docs

@Rules

明确指定需要使用的rules,Manual类型的Rules必须使用@才生效

@最近的修改

将最近修改的代码作为上下文提供给大模型

@Linter Errors

捕获代码中的错误和警告,保证代码质量,发现潜在的代码问题。 如果你的项目在Cursor中启动,Agent可以一边写代码一边修复错误。

@历史对话

当你需要参考历史对话中的信息时。

@内置工具:Web、Git、终端

MCP

模型上下文协议(Model Context Protocol / MCP) 是一个开放的协议,它描述了应用程序如何向 LLMs 提供上下文和工具。可以将 MCP 看作 Cursor 的插件系统-它允许您通过标准化接口将 Agent 连接到各种数据源和工具,从而扩展 Agent 的功能。

MCP资源

推荐好用MCP服务

  • server-sequential-thinking

Smithery上最火的mcp server,@smithery-ai/server-sequential-thinking(563k)提供结构化思维、动态规划和反思的能力。

不过,由于Cursor这样的强大客户端已经内置了这些功能,并且集成得更加完善。

因此,这些MCP服务更适合那些自主开发的客户端,或者功能相对简单的客户端来集成使用。

对think工具的详细分析

think tool

  • playwright:自动化操作浏览器(获取html后context容易超限) playwright

  • 高德地图:近期很火的MCP服务,路线规划,查天气 gaode maps

  • 21st.dev:前端UI,界面美化(免费版次数有限) 它会打开一个本地链接让你选样式风格。 magic

  • desktop-commander:操作桌面文件、目录、进程等。Cursor已经内置了强大的Shell能力,用Shell也能实现。

MCP服务调试

连接到MCP服务,查看工具列表,手动传入参数调用工具

MCP服务没有被调用

我们在使用中经常会遇到想要调用的MCP服务没有被调用的情况,该如何解决?

原因

  • 工具数量超出限制
  • MCP服务连接失败
  • 使用了内置工具 - Cursor会默认使用内置工具,如果MCP工具的能力与其重复,可能不会被调用
  • 存在功能重复的工具
  • 模型能力不足

解决方法

在Rules中或对话时明确指定使用Sequential Thinking服务

Rule: Always Use Sequential Thinking  
When executing tasks:  
- MustInclude: SequentialThinking  
- Validate: Task decomposition into subtasks

优先使用指定服务

- SequentialThinking: Enabled  
- SearchProvider: BraveSearch (default)  
- ExternalModels: OpenRouter (Gemini 2.5 Pro fallback)

限制

MCP 是一个创新但仍在快速发展的协议。使用时需注意以下几点限制:

  1. 服务不稳定:

    • 连接易断开:尝试重新开关或者刷新一下,显示红点或者绿点但是没有显示工具列表
    • mcp error
  2. 工具数量限制:

    • 问题:某些 MCP 服务器或用户可能有大量可用工具。
    • 当前限制:Cursor 目前只能向 agent 发送前 40 个工具。
    • tool count
  3. 远程开发兼容性:

    • 通信方式:Cursor 直接从本地机器与 MCP 服务器通信(通过 stdio 或 sse)。
    • 潜在问题:在 SSH 或其他远程开发环境中,MCP 服务器可能无法正常工作。
  4. MCP 资源支持:

    • MCP 服务器功能:提供工具和资源两种主要功能。

    • 当前支持:Cursor 目前只支持工具功能,可执行 MCP 服务器提供的工具并使用输出。

    • 资源支持:目前尚未实现,但计划在未来版本中添加。

这些限制会在后续持续优化。