Cursor编程

Cursor实践指南

Cursor作为一款AI驱动的代码编辑器,正在改变我们的编程方式。本文将分享如何有效地使用Cursor进行开发,从基础使用到高级技巧,帮助你提升编程效率。

Cursor基础使用

安装与设置

Cursor可以从官方网站下载安装。支持Windows、macOS和Linux系统。安装后,你需要:

  1. 创建或登录账号
  2. 连接你的OpenAI账号(如果你想使用GPT-4等高级功能)
  3. 设置你的工作区

基础篇

模式

模式 适用场景 功能 工具
Agent 复杂功能、重构 自主探索、多文件编辑 启用所有工具
Ask 学习、规划、提问 只读探索,不做自动更改 仅搜索工具
Plan 需规划的复杂功能 执行前生成详细计划,提出澄清性问题 启用所有工具

这里官方文档已经写的很清楚了,不同模式对应不同场景。

命令

cursor 支持多种命令模式:

  1. 项目命令:存放在项目的 .cursor/commands 目录
  2. 全局命令:存放在主目录的 ~/.cursor/commands 目录
  3. 团队命令:由团队管理员在 Cursor Dashboard 中创建,自动向所有团队成员提供

可以通过跨界见 command + p 输入 >

即可设置项目命令和全局命令,暂时没用过团队版,不做展示

我这里设置了一个 code-review 的全局命令

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
# code-review

## 概述

在批准任何变更之前,执行彻底的代码评审,以验证其功能性、可维护性和安全性。重点关注架构、可读性、性能影响,并提供可操作的改进建议。

## 步骤

1. **理解变更**
- 阅读 PR 描述和相关议题以获取上下文
- 确定受影响的文件和功能范围
- 记录任何假设或需要与作者澄清的问题
2. **验证功能性**
- 确认代码实现了预期行为

- 在本地运行或通过脑力演练检查边界情况或保护条件
- 检查错误处理路径与日志是否清晰

3. **评估质量**
- 确保函数职责单一、命名具描述性、代码可读
- 注意是否存在重复、无用代码或缺失测试
- 验证文档和注释是否反映最新变更
4. **审查安全与风险**
- 查找注入点、不安全默认设置或缺失的校验
- 确认未暴露秘密或凭证
- 评估变更对性能或可扩展性的影响

## 评审清单

### 功能性

- [ ] 预期行为正常工作且符合需求
- [ ] 边界情况得到妥善处理
- [ ] 错误处理合理且信息充分
- [ ] 无明显错误或逻辑问题

### 代码质量

- [ ] 代码可读且结构良好
- [ ] 函数小而专注
- [ ] 变量名具有描述性
- [ ] 遵循项目约定
- [ ] 无不必要的重复或无用代码
- [ ] 不对公共组件或方法进行破坏性修改
- [ ] 除提示文案外,减少代码中的存在含义的字符串,定义成常量

### 安全与安全性

- [ ] 未引入明显的安全漏洞
- [ ] 输入已校验,输出已净化
- [ ] 敏感数据处理得当
- [ ] 无硬编码密钥

## 其他评审备注

- 考量架构和设计决策
- 评估性能瓶颈或回归
- 审查编码规范与最佳实践
- 检查资源管理、错误处理和日志记录
- 给出可替代方案、额外测试用例或文档更新建议

提供具有建设性的反馈,附带具体示例与可执行指导,帮助作者改进。

设置好命令后,在 chat 对话框输入 / 就会提示,而且还提供预览 command

关于如何写 command 可以在 github 寻找参考,例如:
command的参考:https://github.com/hamzafer/cursor-commands

.cursorignore

.cursorignore 和 .gitignore 类似,用来指定 cursor 屏蔽哪些文件

auto run

auto run

快捷键

  • Cmd/Ctrl + K:打开命令面板
  • Cmd/Ctrl + I:打开AI聊天
  • Cmd/Ctrl + L:生成代码
  • Cmd/Ctrl + Shift + L:解释选中的代码
  • Cmd/Ctrl + Shift + I:编辑选中的代码

工具篇

MCP

MCP 全称 Model Context Protocol,模型上下文协议。

MCP 可以简单理解为是 AI 和外部工具间的一座桥梁,通过 MCP 我们的AI可以读取到外部工具的一些信息例如 apifox figma

Apifox 帮助文档

Figma

MCP 广场

Hooks

Cursor 可以配置自定义 Hooks,在某些时刻执行

配置:
创建 ~/.cursor/hooks.json

1
2
3
4
5
6
{
"version": 1,
"hooks": {
"afterFileEdit": [{ "command": "./hooks/format.sh" }]
}
}

afterFileEdit 就是一个钩子,在编辑文件后会运行 ./hooks/format.sh 脚本

Cursor 支持以下几类 hooks 钩子,在对应时机自动执行你指定的脚本或命令:

  • beforeShellExecution: 在执行shell命令前调用,可以控制权限
  • beforeMCPExecution: 在执行MCP工具前调用,可以控制权限
  • afterShellExecution: 在shell命令执行后触发,可用于审计或收集指标
  • afterMCPExecution: 在MCP工具执行后触发,包含工具的输入参数和结果
  • afterFileEdit: 在文件编辑后触发,适用于代码格式化或记录生成的代码
  • beforeReadFile: 在读取文件前启用内容脱敏或访问控制
  • beforeSubmitPrompt: 在用户点击发送后、发起后端请求之前调用,可阻止提交
  • afterAgentResponse: 在代理完成一条助理消息后调用
  • stop: 在代理循环结束时调用,可选地自动提交后续用户消息以继续迭代

function call

在开始和AI对话前会有一些预定的的函数列表,通过 json-schema格式存储,每个函数都有明确的名称、描述、参数类型和用途说明。当用户和 AI 进行对话时,AI 会分析用户输入内容,从已注册的 function 列表中选择适合完成用户请求的函数,将用户输入转换成合适的参数,调用函数,函数再去调用其他API或者查询数据库返回结果,结果给到模型也是结构化JSON数据,模型对结果进行整合回答用户。

prompt

提示内容需要注意的几点:

  • 描述尽量具体
  • 避免说不要做什么,尽量明确要做什么
  • 避免不明确

提示技巧

优化你的 prompt

RAG fine turning、workflow、agent

loading….


Cursor编程
https://l1ushun.github.io/2025/11/10/cursor/
作者
shun
发布于
2025年11月10日