从一次深夜重构说起

上个月我接手了一个遗留项目,两千多行的一个 Python 文件塞满了业务逻辑。那天晚上十一点,我盯着屏幕上密密麻麻的 if-else,第一次感觉 AI 编程工具不只是玩具。当时用的是 Cursor 0.42 版本,订阅的是 Pro 方案(20 美元/月,约合人民币 145 元)。我没有手动去拆分函数,而是先选中那一段 300 行的代码,按下 Cmd+K 输入:“把这段拆成几个独立模块,每个模块保持单一职责,函数名用业务语义”。Cursor 在 40 秒内给出了重构方案,虽然不是完美,但确实帮我节省了至少一小时的手工整理时间。

那次经历让我开始系统性研究 Cursor 的用法。一个月下来,我的编码效率提升了大概 30%,不是虚的,是有 commit 记录可查的。这篇文章不聊那些老生常谈的快捷键列表,而是分享四个我实际每天都在用的核心技巧。

Composer 模式:从聊天气泡到多文件编辑

很多人用 Cursor 还停留在 Tab 自动补全和单文件对话,这其实浪费了它最核心的能力。Composer 模式(Ctrl+I 唤起)是为多文件任务设计的。举个例子,我需要给项目加一个 Redis 缓存层,涉及配置文件、缓存工具类、三个业务模块的调用逻辑。传统做法要打开五六个文件,逐个修改。用 Composer,我只需要描述:“项目使用 FastAPI,现在给用户查询接口加 Redis 缓存,TTL 设 300 秒,缓存 key 格式为 user:{id},注意处理缓存穿透”。

Composer 会自动扫描相关文件,在侧边栏列出要修改的清单,每个文件都能看到 diff。我这里实际操作下来,第一次生成的成功率大约 70%,剩下 30% 的问题集中在缓存序列化配置上,但比手动改快太多了。有个细节容易忽略:Composer 顶部可以选择模型。我日常用 Claude 3.5 Sonnet,但遇到复杂逻辑推演时换成 GPT-4o Turbo 效果更好。实测对比:同一个需求,Claude 生成的代码更简洁,GPT-4o 的注释更详细,看你的偏好。另外 Composer 有个 “Plan” 模式,让 AI 先生成实施计划,你确认后再动手写代码,在处理跨多文件的重大重构时强烈建议先用这个模式,能减少一半的返工。

小技巧:在 Composer 里用 @ 符号引用文件或文档,比复制粘贴上下文更精准。比如输入 @requirements.txt 让它理解项目依赖,输入 @你的技术方案.md 让它照着文档写实现。这个操作每次能省两三分钟,积累下来就相当可观了。

Rules 文件:把团队规范变成 AI 的肌肉记忆

Cursor 的 Rules(项目根目录下的 .cursorrules 文件)是很多用户忽略但价值极高的功能。它能让 AI 在生成代码时就遵循你的项目规范,而不是生成后再去 review 调整。

以我自己的项目为例,我们团队有约定:Python 代码必须带类型注解;函数内禁止使用 print,统一用 logging;所有新增接口必须写对应的 pytest 测试;代码注释用中文;异常必须显式捕获,不允许裸 except。我把这些写进 .cursorrules 后,AI 生成的代码 90% 以上符合团队规范。以前协作用 GPT-4 写代码,经常要花时间修这些格式和规范问题,一个模块改来改去至少多花二十分钟。现在直接在生成阶段就解决了。

写 Rules 有个技巧:不要写抽象的 “代码质量要高” 这种废话,要写具体的、可检查的约束。比如:“所有数据库操作必须使用 SQLAlchemy 2.0 语法,禁止原生 SQL”、“Redis key 一律以项目名缩写 pj: 开头”。规则越具体,AI 遵守得越好。你可以从代码 review 中最常提的意见开始整理,那基本上就是团队最容易犯的错。

另外 Rules 文件支持分层配置。全局的写在用户设置里(涵盖所有项目),项目专属的写在 .cursorrules 里,还可以为不同文件夹创建不同规则。比如前端代码和后端代码规范不一样,可以在各自目录下放 .cursorrules 实现隔离。这功能我用了两周后才摸透,效果仅次于 Composer。

代码库索引:让 AI 真正“认识”你的整个项目

很多人抱怨 Cursor 对项目理解不深入,经常答非所问。问题大概率出在代码库索引(Codebase Index)没配置好。Cursor 0.44 版本开始,索引功能有了显著提升,但需要你告诉它什么该索引,什么该忽略。

默认情况下 Cursor 会扫描整个项目目录,包括 node_modules、构建产物、缓存文件这些噪音巨大的东西。结果就是索引体积大、回答速度慢,还可能被无关代码干扰判断。正确做法是在项目根目录的 .cursorignore 文件里排除掉这些目录。我处理过一个项目,索引从 850MB 降到 120MB,AI 回答代码库问题的准确率提升了不少,响应速度也快了大约一半。

设置好之后,你可以用 Ctrl+Enter(Ask Codebase)来提问,比如:“这个项目的用户登录流程涉及哪些文件?” Cursor 会展示相关文件列表并给出解释。我实测在一个 50 万行代码的项目里,Ask Codebase 能在 15 秒内准确定位到核心调用链,比自己用 grep 搜索再翻代码快太多了。这个功能特别适合新人上手陌生项目,或者老手回忆三个月前写的代码。

另外一个实用技巧是善用 “Find References” 和 AI 结合。在代码上右键选择 “Ask AI about this symbol”,Cursor 会搜索所有引用位置并综合分析关系,比 IDE 自带的引用查找聪明得多。它能告诉你 “这个函数在三个地方被调用,分别用于订单生成、库存扣减和日志审计” 而不是只列出文件行号。

Tab 补全的进阶玩法:不只是单行自动完成

大多数人对 Cursor 的印象还停留在 AI 聊天窗口,但实际日常开发中,Tab 补全(Edit Prediction)才是使用频率最高的功能。它和 GitHub Copilot 的补全不同。Cursor 的 Tab 补全能预测你的下一步操作,不只是一行代码,还包括接下来的多行操作、删除重构、修改参数等。

举一个实际例子,我在写一个 API 接口,先定义好了函数签名和 docstring,Cursor 的 Tab 补全直接替我生成了完整的函数体。更神奇的是,如果我要删除一个不再使用的参数,按下退格键,它还会预测到下一步——删除所有调用处传入的对应参数。这就省去了满项目搜索再手动改的麻烦。根据我连续 28 天的统计,写一个 200 行的业务模块,Tab 补全能省下大约 35% 的键盘输入量。遇到重复性强的代码(CRUD 接口、测试用例、配置项),这个比例可以升到 50%。

要使 Tab 补全发挥最大作用,有两个设置很关键。第一,在 Settings > Features > Edit Prediction 里开启 “Streaming” 模式,生成速度会明显加快。第二,养成写清晰命名和注释的习惯,AI 推断代码意图的准确率会从 60% 提升到 85% 左右。而且补全的内容质量跟项目内的代码风格一致性有关系,你的项目越规范,补全越准确。

还有一个小众但很实用的功能:Auto Debug。当代码报错时,Cursor 能自动定位到出错的代码行并给出修复建议。有一次我遇到一个并发的竞态问题,想了半小时没头绪的问题,Auto Debug 在 20 秒内指出是缺少 threading.Lock 导致的,还给出了修改方案。虽然不是每次都能这么精准,但作为第一道排查手段已经非常有价值了。

💬 你用过哪些AI工具?

好了,以上是我最近用 Cursor 的实际体验和心得。从 0.38 版本用到现在的 0.45,眼看着它从一个小众编辑器进化成 AI 编程的主力工具,确实感慨。

想问问你,除了 Cursor,你平时还在用哪些 AI 工具?是 GitHub Copilot、通义灵码、CodeGeeX,还是直接用 ChatGPT/Claude 来辅助编程?每个人的使用习惯和工作场景不一样,踩过的坑和收获的经验肯定也各不相同。

如果你感兴趣,可以去 AI House 排行榜(aibunkhouse.com/rankings/)看看最新的工具排名和用户评价,给 Cursor 或者你在用的其他模型投上一票。这个榜单会根据真实用户投票持续更新,能比较客观地反映哪些工具在当前阶段值得花时间学习和投入。

评论区聊聊你常用的 AI 工具组合吧,或者说说你在用 Cursor 时遇到的最大的坑是什么,咱们互相学习一下。

常见问题 / FAQ

从一次深夜重构说起

上个月我接手了一个遗留项目,两千多行的一个 Python 文件塞满了业务逻辑。那天晚上十一点,我盯着屏幕上密密麻麻的 if-else,第一次感觉 AI 编程工具不只是玩具。当时用的是 Cursor 0.42 版本,订阅的是 Pro 方案(20 美元/月,约合人民币 145 元)。我没有手动去拆分函数,而是先选中那一段 300 行的代码,按下 Cmd+K 输入:“把这段拆成几个独立模块...

Composer 模式:从聊天气泡到多文件编辑

很多人用 Cursor 还停留在 Tab 自动补全和单文件对话,这其实浪费了它最核心的能力。Composer 模式(Ctrl+I 唤起)是为多文件任务设计的。举个例子,我需要给项目加一个 Redis 缓存层,涉及配置文件、缓存工具类、三个业务模块的调用逻辑。传统做法要打开五六个文件,逐个修改。用 Composer,我只需要描述:“项目使用 FastAPI,现在给用户查询接口加 Red...

Rules 文件:把团队规范变成 AI 的肌肉记忆

Cursor 的 Rules(项目根目录下的 .cursorrules 文件)是很多用户忽略但价值极高的功能。它能让 AI 在生成代码时就遵循你的项目规范,而不是生成后再去 review 调整。 以我自己的项目为例,我们团队有约定:Python 代码必须带类型注解;函数内禁止使用 print,统一用 logging;所有新增接口必须写对应的 pytest 测试;代码注释用中文;异常必须显式捕获,...

代码库索引:让 AI 真正“认识”你的整个项目

很多人抱怨 Cursor 对项目理解不深入,经常答非所问。问题大概率出在代码库索引(Codebase Index)没配置好。Cursor 0.44 版本开始,索引功能有了显著提升,但需要你告诉它什么该索引,什么该忽略。 默认情况下 Cursor 会扫描整个项目目录,包括 node_modules、构建产物、缓存文件这些噪音巨大的东西。结果就是索引体积大、回答速度慢,还可能被无关代码干扰判断。正确...

Tab 补全的进阶玩法:不只是单行自动完成

大多数人对 Cursor 的印象还停留在 AI 聊天窗口,但实际日常开发中,Tab 补全(Edit Prediction)才是使用频率最高的功能。它和 GitHub Copilot 的补全不同。Cursor 的 Tab 补全能预测你的下一步操作,不只是一行代码,还包括接下来的多行操作、删除重构、修改参数等。 举一个实际例子,我在写一个 API 接口,先定义好了函数签名和 docstring,Cu...