- 立规矩:给它框架。
- 说清楚:指令明确。
- 拆任务:小步快跑。
- 给标准:用测试说话。
- 常反馈:及时纠偏,让它学好。
- 指范围:精准打击 (@ Context)。
- 看全局:让它知道目标 (Docs)。
- 直接改:行动胜于解释 (Show, don’t tell)。
- 用历史:迭代优化提示。
- 选对人:模型各有所长。
- 链外部:善用工具和网络 (@Web, MCP)。
- 预处理:索引提效 (Indexing)。
家人们!用 Cursor 写代码,是不是感觉像开盲盒?
有时候“嗖”一下,代码又快又好,简直神器!有时候呢?
它给你整一堆乱糟糟的,改起来想死的心都有!
问题出在哪?大概率是用法不对!
Cursor 首席设计师 Ryo Lu 最近就亲自下场,分享了 12 条正确使用 Cursor 的方法。
1、开局先立规矩 (5-10 条清晰规则)
AI 也得有规矩,不然容易放飞自我。
一上来就给 Cursor 定好 5-10 条项目规则 (Rules),告诉它你项目的技术栈、版本、约束条件。
新项目先来点通用的,老项目可以试试 /generate rules
让它自己学。立了规矩,代码生成才可控!
举个栗子:
你可以建个 .cursor/rules/javascript.rules
文件,写上:
Always use 'const' or 'let', never 'var'.
Use snake_case for variable names.
Import modules alphabetically.
这样 AI 生成 JS 代码时就会规矩很多。
老项目用 /generate rules
,它可能会分析你的代码,发现你经常用某个库或者某种写法,然后自动生成类似的规则。
2、提要求要具体 (迷你rules)
跟 AI 提需求,不能含糊。得像写个小需求文档一样,把技术栈、行为、限制都说清楚。Prompt 写得好,AI 才不跑偏!
举个栗子:
模糊要求:“帮我做个按钮。” (AI:???啥按钮?)
具体要求:
用 React 和 Tailwind CSS 创建一个按钮组件 (Button.tsx)。
按钮背景蓝色 (bg-blue-500),文字白色,圆角 (rounded-md),内边距 px-4 py-2。
鼠标悬停时背景变深 (hover:bg-blue-600)。”
你看,这样 AI 就知道该怎么干了。
3、小步快跑,逐个击破 (按文件/模块工作)
搞大项目,千万别想一口吃成胖子!
让 AI 一次生成整个项目?绝对翻车!
我见过太多这种“AI 开发翻车现场”了,前期不拆分,中期不审查,后期代码一坨屎,跑不起来还改不动!
正确姿势是模块化!
先把项目拆成小模块、小功能。一个一个让 AI 写,写完就测试、审查。
有问题当场解决,稳步推进!
举个栗子:
错误姿势:“帮我重构整个用户认证流程。” (AI:大哥我干不来…)
正确姿势:
第一步:“重构 @file:src/auth/login.ts文件,把 Promise 改成 async/await。” (搞定,测试)
第二步:“重构 @file:src/auth/signup.ts文件,加入邮箱格式验证逻辑。” (搞定,测试)
第三步:“更新 @file:tests/auth.test.ts 里的测试用例以匹配新的重构。” (搞定,测试)
一步一个脚印,才不会扯着蛋。
4、先写测试,再写代码 (TDD 思维)
用测试用例告诉 AI 成功的标准是啥。先写测试,再让 AI 写代码去通过测试。
注意! AI 可能耍滑,偷偷改测试。所以,用 .cursorignore
文件把测试文件保护起来!
告诉 Cursor:这些文件不准碰!先画好圈,再让它发挥。
举个栗子:
首先,在项目根目录或者相关目录下创建 .cursorignore 文件,写入:
# .cursorignore 文件内容示例
# 忽略所有测试文件目录
tests/
__tests__/
# 忽略所有以 .spec.ts 或 .test.js 结尾的文件
*.spec.ts
*.test.js
然后,在 math.test.js
里写好测试:
// math.test.js 文件内容示例
const sum = require('./math'); // 假设你的函数在 math.js 里
test('adds 1 + 2 to equal 3', () => {
expect(sum(1, 2)).toBe(3);
});
// 你可以根据需要添加更多测试用例
// test('adds -1 + 1 to equal 0', () => {
// expect(sum(-1, 1)).toBe(0);
// });
最后,你可以选中 math.js
文件或者直接在聊天里说:
“请在 @file:math.js 文件里编写 sum 函数,让 @file:math.test.js 里的测试用例通过。”
5、人工审查,及时纠偏 (硬修复 + 反馈)
别把 AI 当神!它也会犯错!
生成的代码必须人工 Review!这是底线!
发现不对,比如注释不符合公司规范?自己动手改!
重点是:
改完告诉 Cursor:“学着点!以后按这个来!”
把你改的代码(diff)喂给它当例子。多调教几次,它就学乖了。
举个栗子:
AI 生成的代码用了 let i = 0; 你觉得不够清晰,手动改成 let loopCounter = 0;。
然后你可以选中这段修改,或者在聊天里说:
“注意变量命名,要像 loopCounter 这样有描述性,而不是简单的 i。以后请遵循这个风格。”
6、指哪打哪,精准打击 (@ 定位上下文)
项目大了,文件一堆,不能让 AI 每次都看一遍。上下文顶不住,还容易改错地方!
用好 @
大法:
@file:就看这个文件!
@folder:这整个文件夹都看看!
@git:看看最近代码有啥变化!(这个很有用!)
精准定位,效率才高!
举个栗子:
“请在 @file:src/components/Button.tsx 文件里,给按钮增加一个 disabled 状态的样式。”
“在 @folder:src/utils 文件夹下,查找所有使用了 lodash 库的地方,替换成原生的 JavaScript 方法。”
“根据 @git 最近的提交,总结一下用户登录模块都改了哪些地方?”
7、把设计文档放进 .cursor/
(让 AI 心中有数)
想让 AI 干活更靠谱,得让它知道项目的“大方向”。
官方建议把设计文档、需求文档、待办清单 (Checklist) 放在 .cursor/
目录里。这样 AI Agent 就有完整的上下文,知道项目的目标和下一步计划。
当然,放 docs/
目录,然后在 Prompt 里用 @folder
指定也行。核心是让 AI 能方便地看到“蓝图”和“路线图”。
举个栗子:
你在 .cursor/DESIGN_SPECS.md 里写好了登录页面的设计规范。
然后可以这样提问:
“根据 @file:.cursor/DESIGN_SPECS.md 里的规范,生成登录页面的 React 组件基础结构。”
8、代码不对?直接上手改!(Show, don’t tell)
AI 有时候就是不开窍,反复犯错。你跟它解释半天也没用。
这时候,别废话,直接上手改!你改代码的操作,就是最好的“示范”。
Cursor 会从你的编辑中学习,比听你解释快得多!
当然,前提是你得会改。
所以说,想玩转 AI 编程,懂点代码还是必要的!
举个栗子:
Cursor 老是给你生成带 console.log 的调试代码。你每次都手动删掉。
几次之后,它可能就“记住”了,不再随便加 console.log
了。
或者你改完后强调一句:
“注意,最终代码里不要包含调试用的 console.log。”
9、善用聊天记录 (迭代提示词)
每次跟 AI 对话都是宝贵经验。
就算它这次回答得烂,让你想骂娘。
也别急着清空记录。
想想为啥烂?是要求没提清?还是它理解歪了?
不满意的点,就是下次优化 Prompt 的方向!
把聊天记录当“错题本”,不断迭代!
举个栗子:
第一次问:“做个用户列表。” AI 给的很简单。
第二次在同个聊天里追问:
“在刚才那个列表基础上,增加分页功能,每页显示 10 条。再加个搜索框可以按用户名搜索。”
这样逐步细化,比一次性提复杂需求效果更好。
10、选对模型,事半功倍 (因材施教)
不能指望一个模型打天下!
不同模型有不同脾气和擅长领域。
Ryo Lu 的建议(结合其他大佬看法):
需要精确、搞定难题:试试 Gemini 2.5 (能力强,但可能需要你多引导)。
需要覆盖广度、创意发散、用工具:试试 Claude 系列 (比如 3.7 可能想得多,3.5 比较听话)
全能型选手:Claude 3.5 依然能打。
想看 AI 思考过程、或者 Debug 复杂错误:试试带 Thinking 模式的模型,或者 GPT o1/o3-mini-high。
扫描代码库、更新文档:可以试试轻量级的 Gemini Flash 2.0。
多试试,找到最适合当前任务的那个!
举个栗子:
写一个性能要求极高的算法,你可能会选 Gemini 2.5 Pro 并仔细引导。
但如果只是想快速生成一些测试数据,或者写个简单的脚本,用 Claude 3.5 Sonnet 或者 Gemini Flash 可能更快更省事。
11、搞不定新技术?喂它文档链接或用 MCP 工具!(联网求助)
遇到新框架、新库,搞不懂?
方法一:直接喂链接
把官方文档链接甩给 Cursor!(用 @Web 功能)
让它自己去“学习”,学完再来帮你。
方法二:用 MCP 工具(更高级)
先搞清楚:MCP 是个协议标准,像 USB 接口一样。
很多工具都可以基于这个标准开发,让 AI 能连接外部世界。
Context7 MCP (GitHub: upstash/context7-mcp) 是其中一个例子,专门用来获取最新的技术文档。
BrowserTools MCP (咱们之前聊过的 AgentDeskAI 那个) 则是另一个例子,能让 AI 控制浏览器、跑审计。
未来还会有更多基于 MCP 的工具出现!
怎么用?按需求开启,支持的工具数量有限!超出了会有提示!
如果你的 Cursor 配置好了某个 MCP 服务器(比如 Context7 MCP 或 DeepWiki MCP):
你就可以在 Prompt 里直接召唤它!
比如:“新的 Next.js after() 函数是怎么工作的?使用 context7”
或者:“帮我看看 https://example.com 这个页面的性能怎么样?调用 BrowserTools 跑个性能审计”
12、大项目?让它晚上“自习”!(代码库索引)
Cursor 有个 Codebase Indexing (代码库索引) 功能。
提前把项目代码读一遍建索引,后续查询和修改会快很多。
但是!索引大项目很耗时!
最好晚上睡觉前让它跑。
同时,用 .cursorignore
排除掉 node_modules/
, build/
这些目录,
限制上下文范围,提高索引效率。
举个栗子:
一个超大的 monorepo 项目,索引一次可能要几小时。
晚上睡觉前点一下 Index Codebase,第二天早上来,问 AI 关于项目代码的问题,它就能秒回了。
Ryo Lu 最后总结:
“结构和控制是胜利之道(目前如此)。
将 Cursor 代理视为一位强大的初级员工
——如果你指明方向,它能够快速走得很远。”