Skip to content

Cursor编辑器进阶使用技巧 (v0.50.5+)

目录

核心功能

Agent模式

Agent模式是Cursor中最强大的功能之一,它可以自主完成复杂任务,包括编写代码、修复错误、运行命令等。

特点:

  • 自主选择上下文:Agent能够智能识别并选择相关的上下文内容,使代码理解和任务执行更精准
  • 终端操作能力:可以直接在终端中执行命令,简化复杂的命令行操作
  • 独立完成任务:能够独立完成复杂的工作流程,无需过多人工干预
  • 推理能力:具备强大的推理能力,可以连续执行多个操作
  • 自动修复错误:能够检测并自动修复代码中的语法错误和lint错误

使用方法:

  1. 在聊天界面选择Agent模式
  2. 输入明确的任务描述
  3. Agent会自动分析任务、查找相关代码、执行必要操作
  4. 对于需要执行的终端命令,可以选择确认、编辑或跳过

进阶技巧:

  • 结合Yolo模式让Agent自动执行终端命令 (无须人工审批)
  • 使用规则系统指导Agent的行为
  • 让Agent查看你的最近更改以获取更好的上下文
  • 使用@符号手动添加额外上下文
  • 使用自定义Agent模式为特定任务创建专用工作流

Chat高级技巧

自动包含当前代码库到与 AI 对话的上下文中,这里介绍一些高级用法:

上下文控制:

  • 使用@Web获取互联网上的最新信息
  • 使用@Docs引用文档(包括自定义文档,可基于特定的文档对话)
  • 使用@Git引用Git提交、差异或PR
  • 使用@Files引用整个文件
  • 使用@Folders引用整个文件夹
  • 使用@Code引用代码的特定部分
  • 使用@Linter Errors引用代码中的lint错误
  • 使用@Recent Changes引用最近的代码更改
  • 使用@Cursor Rules引用Cursor规则
  • 使用@Notepads引用笔记内容
  • 使用@Past Chats引用过去的对话

图片支持:

  • 可以将图片拖拽到聊天中作为视觉上下文
  • 上传UI设计图,让AI生成对应的代码
  • 使用图片按钮上传截图或其他图像
  • 支持分析错误截图和图表

聊天标签:

  • 使用⌘+T/Ctrl+T创建新的聊天标签,同时处理多个对话
  • 在标签之间切换,保持多个上下文会话
  • 为不同项目或任务创建专用聊天标签

Tab自动补全

Tab是Cursor中比传统代码补全更强大的功能,由定制模型驱动,能理解你的代码上下文并提供智能建议:

主要功能:

  • 多行编辑:一次性提供多个编辑建议,大幅提高编码效率
  • 光标预测:预测你的下一个光标位置,实现无缝代码导航
  • 错误纠正:自动纠正代码编写错误,提高代码质量
  • 智能重写:即使输入不完整或有错误,也能理解意图并提供正确代码
  • 上下文感知:考虑你最近的更改和周围代码,提供更相关的建议

进阶使用:

  • 使用连续Tab跳转到预测的下一个编辑位置
  • 结合规则系统定制Tab补全行为
  • 在设置中调整Tab补全的触发时机和行为
  • 使用Tab补全处理重复性代码模式
  • 利用Tab补全自动完成常见编码模式(如循环、条件语句等)

Inline-Edit

Inline Edit (⌘+K/Ctrl+k) 允许你在编辑器窗口中快速生成或编辑代码,无需切换到聊天界面:

使用场景:

  • 生成新代码:在没有选中任何代码时使用,根据描述生成代码
  • 修改现有代码:选中代码后使用,根据指令修改所选代码
  • 终端命令生成:在终端中使用⌘K生成命令

进阶技巧:

  • 使用@符号引用其他上下文,增强编辑的准确性
  • 通过多次迭代细化提示,逐步完善生成的代码
  • 使用⌘L将当前编辑任务发送到Agent继续处理
  • 使用具体明确的指令获得更精准的结果
  • 在终端中使用⌘K生成复杂命令序列
  • 使用"Quick Question"功能快速获取代码相关问题的答案

快捷键组合:

  • ⌘K:打开Inline Edit
  • ⌘L:将任务发送到Agent
  • Escape:取消当前编辑

最佳实践:

  • 提供清晰具体的指令
  • 指定所需的编程语言和风格
  • 对于复杂任务,先在小范围测试后再应用到大型代码
  • 使用@符号引用相关文件或文档作为上下文

高级特性

规则系统

Cursor规则系统允许你控制AI的行为,可以理解为大语言模型的指令或系统提示词。规则系统是提升AI响应质量和一致性的关键工具:

规则类型:

  1. Always:始终包含在模型上下文中,应用于每个聊天和命令
markdown
---
alwaysApply: true
---

# 编码规范

- 使用UTF-8编码
- 缩进使用2个空格,不使用Tab
- 每行代码长度不超过100个字符
- 文件末尾保留一个空行
- 变量命名使用有意义的名称,避免单字母变量(除了循环索引)
- 所有函数必须有注释说明功能和参数
  1. Auto Attached:基于glob模式匹配特定文件类型
markdown
---
globs: src/**/*.js,src/**/*.jsx

---

# JavaScript/React开发规则

## 代码风格

- 使用ES6+语法
- 优先使用const,其次let,避免使用var
- 使用箭头函数表达简短函数
- 使用解构赋值获取对象属性
- 使用 TypeScript
  1. Agent Requested:基于描述字段,AI根据需要选择应用
markdown
---
description: USE WHEN implementing API endpoints or backend services
---

# 后端开发规则

## API设计

- 遵循RESTful设计原则
- 使用复数名词表示资源集合
- 使用HTTP方法表示操作(GET、POST、PUT、DELETE)
- 返回适当的HTTP状态码

## 错误处理

- 所有异常必须被捕获并处理
- 返回统一的错误响应格式
- 包含错误代码和描述信息
- 生产环境不暴露敏感的错误详情

## 安全性

- 验证所有用户输入
- 实现适当的授权和认证
- 防止SQL注入和XSS攻击
- 敏感数据加密存储
  1. Manual:需要手动引用才会加载 (通过 @Cursor Rules)
markdown
---
description: 数据库操作规范
---

# 数据库操作规范

## 查询优化

- 只查询需要的字段,避免SELECT *
- 为频繁查询的字段创建索引
- 使用参数化查询防止SQL注入
- 大型查询分页处理

## 事务处理

- 保持事务简短
- 避免长时间锁定表
- 使用适当的隔离级别
- 正确处理事务回滚

## 连接管理

- 使用连接池管理数据库连接
- 操作完成后及时释放连接
- 设置合理的超时时间
- 实现重试机制处理临时连接失败

规则文件存储位置:

  • 项目规则:存储在.cursor/rules目录中的.mdc文件
  • 全局规则:在Cursor设置中配置的Rules for AI
  • 旧版规则.cursorrules文件(已弃用)

规则文件格式:

规则文件使用Markdown格式(.mdc),包含前置元数据和主体内容:

markdown
---
description: USE WHEN writing React components
globs: src/**/*.tsx,src/**/*.jsx
alwaysApply: false
---

规则激活机制:

规则激活分为两个阶段:

  1. 注入阶段:规则被注入到系统提示上下文中
    • alwaysApply: true:无条件注入规则
    • globs:基于文件匹配模式注入规则
  2. 激活阶段:规则是否生效取决于description字段
    • AI会评估上下文决定是否应用规则

创建有效规则的建议:

  • 使用一致的"USE WHEN"前缀明确触发条件
  • 使用明确的动作条件
  • 避免同时使用globs和description
  • 保持规则简洁明确
  • 使用分层结构组织复杂规则
  • 为不同类型的任务创建专门的规则

自动生成规则:

  • 使用/Generate Cursor Rules命令从现有对话中生成规则
  • 对于带有路径模式的Auto Attached规则,Agent会在读取或写入文件时自动应用相应规则

规则管理:

  • 在设置中查看和管理全局规则
  • 使用版本控制系统管理项目规则
  • 通过@Cursor Rules在聊天中引用特定规则
  • 使用规则组合解决复杂场景

MCP工具集成

MCP(Model Context Protocol)是一个开放协议,允许你向Cursor中的AI Agent提供自定义工具和额外的上下文信息,大幅扩展AI的能力范围:

主要功能:

  • 允许Agent使用外部工具和API
  • 支持自定义工具的开发和集成
  • 可以执行复杂的任务序列
  • 实现与外部服务和数据源的交互

设置步骤:

  1. 在Cursor设置中添加MCP服务器
  2. 配置传输类型和运行命令
  3. 在Agent模式中启用相应的工具
  4. 设置必要的环境变量和身份验证

MCP服务器配置示例:

json
{
  "mcpServers": {
    "everything": {
      "url": "http://localhost:3001/sse"
    },
    "everything-stdio": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-everything"]
    }
  }
}

其他

Updated at: