1. 什么是 Cursor?
Cursor 是一款基于 VS Code 的 AI 原生 IDE,内置了 GPT-4o、Claude 3.5 Sonnet 等最新大模型,支持代码补全、重构、解释、测试生成、Bug 修复等全流程 AI 辅助。
一句话总结:把 AI 当同事,而不是工具。
2. 安装与初始化
2.1 安装
- 官网下载:https://cursor.sh
- 支持 macOS / Windows / Linux,一键迁移 VS Code 配置。
2.2 初始化配置
// settings.json(全局)
{
"cursor.general.openaiModel": "gpt-4o",
"cursor.general.maxTokens": 4096,
"cursor.general.temperature": 0.2,
"cursor.features.autoComplete": true,
"cursor.features.autoTest": true,
"cursor.features.autoDoc": true
}
3. 核心功能与最佳实践
3.1 代码补全(Tab 补全)
- 触发方式:写完一行按
Tab,或Ctrl+Space手动触发。 - 最佳实践:
- 先写注释或函数签名,再按 Tab,命中率提升 30%。
- 复杂逻辑先写伪代码,Cursor 会自动展开实现。
# 示例:先写注释,再按 Tab
# 计算斐波那契数列,使用动态规划
def fib(n: int) -> int:
# 按 Tab 后 Cursor 自动生成
if n < 2:
return n
dp = [0, 1]
for i in range(2, n + 1):
dp.append(dp[i - 1] + dp[i - 2])
return dp[n]
3.2 代码解释(Explain)
- 快捷键:选中代码 →
Ctrl+K Ctrl+E - 最佳实践:
- 对遗留代码、第三方库、正则表达式使用,节省 80% 阅读时间。
- 让 Cursor 生成“人话版”注释,直接插入代码。
// 选中以下代码后按 Ctrl+K Ctrl+E
const re = /^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)[a-zA-Z\d]{8,}$/;
// Cursor 解释:至少8位,包含大小写字母和数字的密码正则
3.3 重构与优化(Refactor)
- 快捷键:选中代码 →
Ctrl+K Ctrl+R - 最佳实践:
- 先让 Cursor 给出 3 种方案,再选其一。
- 对性能热点、重复代码、复杂条件语句使用。
// 重构前
if err != nil {
log.Printf("failed to open file: %v", err)
return err
}
// 重构后(Cursor 建议)
if err := openFile(); err != nil {
return fmt.Errorf("open file: %w", err)
}
3.4 单元测试生成(Test)
- 快捷键:选中函数 →
Ctrl+K Ctrl+T - 最佳实践:
- 先生成 happy path,再补充边界条件。
- 对私有函数,先生成 public wrapper 再测试。
# 原函数
def add(a: int, b: int) -> int:
return a + b
# Cursor 生成的测试
import pytest
@pytest.mark.parametrize("a,b,expected", [(1, 2, 3), (-1, 1, 0)])
def test_add(a, b, expected):
assert add(a, b) == expected
3.5 Bug 修复(Fix)
- 快捷键:选中报错行 →
Ctrl+K Ctrl+F - 最佳实践:
- 先贴错误日志,Cursor 会定位到具体行。
- 对并发、空指针、类型转换错误效果最佳。
// 错误:cannot borrow `vec` as mutable more than once
for i in &mut vec {
vec.push(i * 2);
}
// Cursor 修复:使用索引
for i in 0..vec.len() {
vec.push(vec[i] * 2);
}
4. 进阶技巧
4.1 自定义 Prompt
在 .cursor/prompts 目录下创建 team.md,统一团队风格。
# 团队规范
- 使用 TypeScript 严格模式
- 函数不超过 20 行
- 优先使用 async/await
- 错误处理统一用 Result 类型
4.2 多文件上下文
- 使用
@file语法引用其他文件,Cursor 会跨文件推理。
# 在 service.ts 中
@file:types.ts
请根据 User 类型生成 CRUD 接口
4.3 私有知识库
- 上传设计文档、API 文档到 Cursor Cloud,AI 会优先检索。
5. 性能与隐私
| 维度 | 建议值 | 说明 |
|---|---|---|
| 模型 | gpt-4o / claude-3.5 | 平衡速度与质量 |
| 温度 | 0.1 ~ 0.3 | 生产代码用低温 |
| 隐私模式 | 开启本地模式 | 敏感代码不上传云端 |
| 缓存 | 开启 | 重复请求秒回 |
6. 常见误区
| 误区 | 正确做法 |
|---|---|
| 完全依赖 AI 写代码 | AI 生成后必须 review + 单测 |
| 一次性生成上千行 | 分模块、分函数逐步生成 |
| 忽略上下文 | 先写注释、类型、测试用例 |
| 滥用高温度 | 生产代码用 0.2 以下 |
7. 实战案例:10 分钟完成一个 REST API
需求:用 FastAPI 实现用户注册接口,包含邮箱校验、密码加密、JWT 签发。
7.1 步骤
- 新建
main.py,写注释:
# FastAPI 用户注册接口
# POST /register {email, password} -> {token}
- 按 Tab 生成骨架,再逐步细化:
- 输入校验(Pydantic)
- 密码加密(bcrypt)
- JWT 签发(PyJWT)
- 按
Ctrl+K Ctrl+T生成测试:
def test_register_success(client):
res = client.post("/register", json={"email": "a@b.com", "password": "123456"})
assert res.status_code == 201
assert "token" in res.json()
8. 总结
| 阶段 | 目标 | Cursor 用法 |
|---|---|---|
| 设计 | 明确需求、接口、数据结构 | 用注释 + Tab 生成骨架 |
| 编码 | 实现业务逻辑 | 分函数、补全、重构 |
| 测试 | 覆盖边界条件 | 自动生成 + 手动补充 |
| 维护 | 修复 Bug、优化性能 | 解释 + Fix + 重构 |
终极心法:把 Cursor 当作“高级实习生”,给它清晰的上下文,它会给你惊喜。
9. 附录:快捷键速查表
| 功能 | 快捷键 |
|---|---|
| 补全 | Tab |
| 解释 | Ctrl+K Ctrl+E |
| 重构 | Ctrl+K Ctrl+R |
| 测试 | Ctrl+K Ctrl+T |
| 修复 | Ctrl+K Ctrl+F |
| 多行编辑 | Alt+Click |
| 命令面板 | Ctrl+Shift+P |
Happy Coding with Cursor!
Comments NOTHING