关于 开发工具 系列其他文章的传送门
- 《 从容地使用 Cursor 帮助开发 》 您当前所在位置
一、前言¶
2024 年底,AI 辅助编程开始从"玩具"走向"生产力工具"。Cursor 不是第一个 AI 编辑器,但它是第一个把 AI 融入编辑器每个操作细节的产品——当你还在复制代码去 ChatGPT 粘贴时,别人已经在编辑器里按一个快捷键完成了整个重构。
它基于 VS Code 生态,意味着你现有的快捷键、插件、主题、settings 全部可以迁移。本文不讲空话,直接从安装开始,带你走完一个完整的 Cursor 工作流。
二、安装与配置¶
2.1 下载安装¶
从 cursor.com 下载对应系统版本,macOS / Windows / Linux 都支持。安装后首次启动会引导你导入 VS Code 的配置:
1 | 是否从 VS Code 导入? |
2.2 配置模型¶
Cmd+Shift+P 打开命令面板,搜索 Cursor Settings → Models 页面:
| 模型 | 用途 | 推荐 |
|---|---|---|
| Claude Sonnet | 复杂代码生成、重构、架构设计 | 主力模型 |
| GPT-4o | 日常问答、通用编码 | 备选 |
| Claude Haiku | 快速补全、简单解释 | 轻量任务 |
建议:日常把 Sonnet 设为主模型,Haiku 处理简单补全,能兼顾质量和速度。
2.3 Rules 配置¶
Cursor 项目根目录下创建一个 .cursorrules 文件,写入你对 AI 的行为偏好,这是提高输出质量最关键的一步:
1 | - 优先使用函数式编程,避免 class |
设置一次,所有对话和 Agent 行为都会遵循这条基线。
三、核心功能¶
3.1 Chat 对话模式¶
快捷键 Cmd+L 打开侧边聊天面板。这是最接近 ChatGPT 的模式,但有两个关键区别:
- 上下文感知:Chat 默认携带你当前打开的文件的全部内容,不需要复制粘贴
- 应用代码:生成代码后可以直接
Apply按钮插入到当前文件的对应位置
1 | # @Chat 示例:在聊天框中问 |
选中代码片段后按 Apply,Cursor 会自动定位到编辑器中的正确位置插入。
3.2 Ctrl+K 内联编辑¶
这是 Cursor 最常用的功能。选中一段代码,按 Cmd+K,弹出一个输入框:
1 | 把这段代码从 for 循环改成列表推导式 |
Cursor 会在原地重写选中代码,你可以用 diff 对比修改前后,决定接受还是拒绝。不需要离开编辑器,不需要复制粘贴。
1 | # 选中这段 |
3.3 Composer / Agent 模式¶
快捷键 Cmd+I 打开 Composer。这是 Cursor 的多文件编辑模式——一个对话可以同时修改多个文件,自动创建新文件,甚至执行终端命令。
适用场景:
- 新建一个完整的 API 端点(路由 + 控制器 + 模型 + 测试)
- 重构一个跨文件的模块拆分
- “给这个前端页面加一个暗黑模式切换”
Composer 模式下 Cursor 会在对话中列出所有改动的文件,像代码审查一样让你逐文件确认。
四、实战场景¶
4.1 从需求到代码:快速搭建一个工具函数¶
假设需要写一个 JSON 配置文件校验器,要求递归检查所有字段是否包含必需键。
在 Cursor 中新建文件,按 Cmd+I 打开 Composer,输入:
1 | 写一个 Python 函数,接收两个参数: |
Cursor 生成的代码直接写入文件,整个过程不需要切出编辑器。
4.2 代码审查与重构¶
接手一个旧项目,看到一个 200 行的函数,选中它按 Cmd+K:
1 | 这个函数职责混杂,按以下原则拆分成多个单一职责的小函数: |
Cursor 会生成重构后的版本,Accept 后直接覆盖即可。配合 Git diff 检查变更范围,风险极低。
4.3 Debug 协助¶
遇到一个诡异 bug,把错误栈和上下文代码一起选中,Chat 中输入:
1 | 这个错误栈表明 json.loads 收到了 bytes 而不是 str, |
Cursor 会从错误栈倒推,指出可能的原因——比漫无目的 print 大法高效得多。
一个实战技巧:当 Cursor 给出的原因不够准,把当前作用域的所有变量状态贴给它(用 print 或日志输出),它能更准确定位。
五、使用建议¶
5.1 不要让它猜¶
AI 不是你肚子里的蛔虫。描述需求越具体,输出质量越高。
| 不好的提问 | 好的提问 |
|---|---|
| “写个排序” | “用快速排序对包含 10 万条记录的列表排序,原地排序,空间复杂度 O(log n)” |
| “这段代码有问题” | “这段代码在并发写入时会出现竞态条件,用 threading.Lock 修复” |
| “优化一下” | “这个查询在 100 万行数据上要跑 3 秒,给 user_id 加复合索引” |
5.2 用 .cursorrules 约束行为¶
把项目的技术栈、编码规范、偏好模式写入 .cursorrules。比如 RESTful API 项目:
1 | - 所有 API 返回格式统一为 { code, message, data } |
每次对话 Cursor 都会加载这些规则,稳定输出符合要求的代码。
5.3 信任但验证¶
Cursor 生成代码后一定要审查:
diff检查改了什么- 跑一次测试确保功能无误
- 对安全敏感的逻辑(SQL、shell 命令、权限校验)额外留意
AI 辅助编程的核心原则:你是指挥官,Cursor 是执行者。决策、审查、最终责任在你,不在 AI。
六、总结¶
| 功能 | 快捷键 | 适用场景 |
|---|---|---|
| Chat | Cmd+L | 问答、代码解释、大段生成 |
| Inline Edit | Cmd+K | 选中代码原地重构、优化、修复 |
| Composer | Cmd+I | 多文件协作、新功能搭建、跨模块重构 |
| Agent | Cmd+Shift+I | 自动化任务、终端命令、业务流程编排 |
Cursor 的核心价值不是"帮你写代码",而是消除上下文切换的摩擦。你不用在浏览器和编辑器之间来回跳跃,所有的思考、生成、修改、验证都在一个地方完成。
开始你的第一行 Cursor 代码——打开一个项目,选中一段旧代码,按 Cmd+K,输入你的优化想法。用多了就会发现:不是代码变简单了,是你处理代码的方式变从容了。