分享 Cursor 的实用快捷键和工作流技巧,帮助开发者充分释放 AI 编程工具的生产力。
我已经连续 4 个月高强度使用 Cursor,既用于专业工作,也用于业余项目,主要是前端项目。
在此期间,我总结了一些想和大家分享的技巧。这里不会介绍 Cursor 的基础知识和基本用法,不过如果你刚开始接触 Cursor,我会提供一些可以参考的资料。
Cursor 内置了大量 AI 功能,你可以在 Cursor 的功能页面找到其中大部分功能。
你也可以观看一些视频,但需要注意,这些视频的内容可能很快就会过时。
《Cursor.AI Basics in 10 Mins (Is it Worth Using?)》(2024 年 10 月 23 日)
《Cursor AI Tutorial for Beginners (How I Code 159% Faster)》(2024 年 8 月 16 日)
TL;DR:Cursor 很出色,但仍有很多地方需要改进。
先从当前 AI 领域最热门的话题说起:Agent。
Cursor 的 Composer 面板中提供了 Agent 模式。它能够搜索整个代码库、在不同文件之间来回跳转,并进行更深入的推理。
它还有很长的路要走,但在处理涉及多个文件的小型修改或功能时已经相当好用,甚至还能用于排查 bug。
我对 Agent 模式的不满在于,它不像普通 Composer 模式那样支持把整个文件夹添加到上下文中,只能直接添加文件。这个问题未来大概会得到改善。在此之前,我接下来要分享的 / 技巧可以解决这个问题。
TL;DR:一种把多个相关文件添加到上下文中的简单方法。
和大多数工具一样,如果上下文中塞满了与 prompt 无关的内容,AI 在生成回答时就很容易“迷失方向”。因此,我们应该尽可能精简上下文。
在 Cursor 中,可以通过 @ 提及文件,或者点击 + 按钮,手动把文件添加到上下文中,但这种操作很快就会变得枯燥。
我发现最好用的技巧是:先关闭编辑器中的所有标签页,只打开那些我确定能帮助 AI 理解任务的文件,然后按下 /,选择 “Reference Open Editors”,一次性把它们全部添加到 prompt 中。
有时候,你会发现 AI 试图修改上下文之外的其他文件;有时它甚至会错误地重写整个文件。这意味着你需要把那个文件也添加到上下文中。或者,如果你十分确定,也可以直接告诉 AI 不要修改那个文件。
所以很多时候,你会撤销修改,然后编辑最初的 prompt,把更多文件加入上下文。
以前这个过程很流畅,但现在多少有些 bug。因此,我通常会复制 prompt,打开一个新对话,再打开额外需要的文件,按 / 把所有文件添加进去,最后粘贴 prompt。
有时候,为了让 / 正常工作,你需要先清空文本输入框。不过可以直接使用下面这套组合操作:Ctrl+A、Ctrl+X、/、Reference Open Editors、Ctrl+V。
TL;DR:一种重复使用相同文件和 prompt 的简单方法。
最近几周,我频繁执行打开相关文件并把它们添加到上下文的流程,于是开始使用 Cursor 的另一个功能:Notepad。
你可以在 Notepad 中使用自然语言描述某项功能,并在其中提及特定文件。之后,只需要在 prompt 中引用这个 Notepad,AI 就能了解你希望它掌握的、与当前功能相关的所有信息。
你也可以用 Notepad 保存经常使用的 prompt,例如代码审查或漏洞排查 prompt。
它在 Agent 模式中同样非常好用。
.cursorrulesTL;DR:把自定义项目指令添加到上下文中。
读到这里,你可能已经听说过 .cursorrules。这是一个用于保存指令的文件,其中的内容会始终出现在 AI 的上下文中。
你可以把那些 AI 经常做错的事情写进去,例如要求它使用特定的库或遵循特定的代码设计规范,这会非常有用。
它还可以帮助 AI 获得更多项目背景,从而生成更好的回答。不过,如果是为了提供项目背景,你可能更适合使用我在后面介绍的 “PRD” 技巧。
你可以在 Cursor Directory 中找到 .cursorrules 文件模板,并参考这些模板,思考自己的文件中可以添加哪些内容。
例如,如果你使用 Next.js,一条很实用的指令是:
useState、useEffect 等客户端状态或能力时,在文件顶部添加 "use client"。TL;DR:把个人自定义指令添加到上下文中。
和 .cursorrules 类似,我们可以在 Cursor 设置的 “Rules for AI” 区域添加指令,让这些指令始终随 prompt 一起发送。
2024 年 11 月 4 日,@kayladotdev 在一条推文中分享了 Cursor 员工 @shaoruu 使用的这些指令。
我自己也一直在使用,效果相当不错,建议你试试看。
DO NOT GIVE ME HIGH LEVEL SHIT, IF I ASK FOR FIX OR EXPLANATION, I WANT ACTUAL CODE OR EXPLANATION!!! I DON'T WANT "Here's how you can blablabla"
- Be casual unless otherwise specified
- Be terse
- Suggest solutions that I didn't think about—anticipate my needs
- Treat me as an expert
- Be accurate and thorough
- Give the answer immediately. Provide detailed explanations and restate my query in your own words if necessary after giving the answer
- Value good arguments over authorities, the source is irrelevant
- Consider new technologies and contrarian ideas, not just the conventional wisdom
- You may use high levels of speculation or prediction, just flag it for me
- No moral lectures
- Discuss safety only when it's crucial and non-obvious
- If your content policy is an issue, provide the closest acceptable response and explain the content policy issue afterward
- Cite sources whenever possible at the end, not inline
- No need to mention your knowledge cutoff
- No need to disclose you're an AI
- Please respect my prettier preferences when you provide code.
- Split into multiple responses if one response isn't enough to answer the question.
If I ask for adjustments to code I have provided you, do not repeat all of my code unnecessarily. Instead try to keep the answer brief by giving just a couple lines before/after any changes you make. Multiple code blocks are ok.
你也可以把这些内容放进 .cursorrules 文件中。两者的主要区别在于:.cursorrules 文件会受到 Git 版本控制,因此可以在团队中共享;“Rules for AI” 则更偏向个人偏好设置。
TL;DR:把当前已修改文件的 diff 添加到上下文中。
有时候,你希望 AI 修改一些尚未提交的内容;你甚至还可以让它审查这些修改,寻找 bug 或安全漏洞。
在这些场景下,@Commit (Diff of Working State) 命令非常有用。
遗憾的是,它目前还不能在 Agent 模式中使用。
TL;DR:开启或关闭功能,并重新同步索引。
你可以在 Cursor Settings 中开启或关闭一些实用功能和实验性功能。
这些设置几乎每次更新都会发生很大变化,你可以通过 Cursor 的更新记录跟踪它们,因此请记得经常回来检查。
此外,你还可以在这里重新同步代码库索引。如果你频繁创建和删除文件,这项功能会非常有帮助,尤其是通过脚本批量执行这些操作时。
2025 年更新:Cursor 现在会自动保存,因此已经不再需要这项设置。
TL;DR:一个有风险但很方便的功能,可以加快开发反馈循环。
在 Twitter/X 上,@hive_echo 分享了一个非常实用的技巧:开启编辑器的 Auto Save 功能。
使用 Composer 时,我对代码所做的大多数修改都足够安全,可以直接应用并保存。开启这项设置后,前端的热重载和编译反馈变得快了很多,整个过程也更加流畅。
唯一的问题是,Auto Save 属于编辑器功能,并不是 Cursor 独有的功能。这意味着,即使你在手动编写代码,每个文件也都会自动保存,从而触发不必要的重新加载,并且经常导致页面暂时崩坏。
TL;DR:规划好一切,然后让 AI 完成剩余工作。
使用 Cursor 的一种优秀方式,是先创建一份 PRD,把产品的所有功能、规格和需求全部定义清楚并记录下来。
之后,你可以让 AI 引用这份文档,使它更深入地了解项目,并知道下一步应该处理什么。
相关视频详细介绍了这种策略。如果你想进一步了解,我建议至少观看它的前 18 分钟。
视频《AI tools for software engineers, but without the hype》
《Cursor + Playwright》
《Podcast with the Cursor Team》
YouTube 频道:@intheworldofai
YouTube 频道:@YifanBTH
YouTube 频道:@AICodeKing
YouTube 频道:@AIJasonZ
Twitter/X:@HeyMarkKop(我)
Twitter/X:@kayladotdev
Twitter/X:@echo_hive
Twitter/X:@YifanBTH
Twitter/X:@rohanpaul_ai
部分评论可能只有登录后的访客才能看到。请登录以查看全部评论。
如果需要采取进一步措施,你可以考虑屏蔽此人和/或举报滥用行为。