
最近 Cursor 官方发布了一个指南,如何在 Cursor 中处理大型代码库,这里我翻译成中文,分享给大家。
正文从下面开始~
处理大型代码库比处理小型项目会带来一系列新的挑战。基于我们在扩展 Cursor 自身代码库的经验以及管理大型代码库的客户见解,我们发现了一些处理复杂性的有用模式。
在本指南中,我们将介绍一些我们发现对大型代码库有用的技术。

使用 Chat 快速熟悉不熟悉的代码
导航大型代码库,特别是如果你对它不熟悉,可能会很有挑战性。你经常需要 grep、搜索和点击来找到你要找的代码库的特定部分。使用 Chat,你可以开始提问来找到你要找的内容,并获得关于它如何工作的详细解释。
在这里,我们正在获取帮助来查找 Cursor 中代码库索引的实现细节,甚至要求一些示例来使其更容易理解。
为了让 Cursor 更好地理解你的代码库结构,请确保从设置中启用包含项目结构以提高性能。

为领域特定知识编写规则
如果你正在让新协作者加入你的代码库,你会给他们什么上下文来确保他们能够开始做出有意义的贡献?
你对这个问题的答案可能对 Cursor 来说也是有价值的信息。对于每个组织或项目,都有一些可能没有完全记录在文档中的潜在知识。有效使用规则是确保 Cursor 获得完整信息的最佳方式。
例如,如果你正在编写如何实现新功能或服务的说明,考虑编写一个简短的规则来记录它。
模板
---
description: 添加新的 VSCode 前端服务
---
1. **接口定义:**
- 使用 `createDecorator` 定义新的服务接口,并确保包含 `_serviceBrand` 以避免错误。
2. **服务实现:**
- 在新的 TypeScript 文件中实现服务,继承 `Disposable`,并使用 `registerSingleton` 将其注册为单例。
3. **服务贡献:**
- 创建贡献文件以导入和加载服务,并在主入口点中注册它。
4. **上下文集成:**
- 更新上下文以包含新服务,允许在整个应用程序中访问。
如果你有想要确保 Cursor 遵循的常见格式化模式,考虑基于 glob 模式自动附加规则。
格式化
---
globs: *.ts
---
- 使用 bun 作为包管理器。查看 [package.json](mdc:backend/reddit-eval-tool/package.json) 了解脚本
- 文件名使用 kebab-case
- 函数和变量名使用 camelCase
- 硬编码常量使用 UPPERCASE_SNAKE_CASE
- 优先使用 `function foo()` 而不是 `const foo = () =>`
- 使用 `Array<T>` 而不是 `T[]`
- 使用命名导出而不是默认导出,例如 (`export const variable ...`, `export function `)
密切关注计划创建过程
对于较大的更改,花更多时间创建一个精确的、范围明确的计划可以显著提高 Cursor 的输出质量。
如果你发现经过几次相同提示的变体后仍然没有得到想要的结果,考虑退一步,从头开始创建一个更详细的计划,就像你为同事创建 PRD 一样。通常困难的部分是确定应该做什么改变,这是一个适合人类的任务。有了正确的指示,我们可以将实现的部分工作委托给 Cursor。
使用 AI 来增强计划创建过程的一种方法是使用 Ask 模式。要创建计划,在 Cursor 中打开 Ask 模式,并输入你从项目管理系统、内部文档或松散想法中获得的任何上下文。考虑你已经知道想要包含的代码库中的文件和依赖项。这可以是一个包含你想要集成的代码片段的文件,或者可能是整个文件夹。
这是一个示例提示:
计划提示
- 创建一个计划,说明我们应该如何创建新功能(就像 @existingfeature.ts 一样)
- 如果有任何不清楚的地方,请向我提问(最多 3 个问题)
- 确保搜索代码库
@过去的聊天(我之前的探索提示)
这是来自[项目管理工具]的更多上下文:
[粘贴的工单描述]
我们要求模型创建一个计划,并通过向人类提问来收集上下文,参考任何早期的探索提示以及工单描述。建议使用像 claude-3.7-sonnet
、gemini-2.5-pro
或 o3
这样的思考模型,因为它们可以理解更改的意图并更好地综合计划。
从这一点出发,你可以在开始实现之前,在 Cursor 的帮助下迭代地制定计划。
为工作选择合适的工具
有效使用 Cursor 的最重要技能之一是为工作选择合适的工具。考虑你想要完成的任务,选择能让你保持流畅的方法。
工具 | 使用场景 | 优势 | 限制 |
---|---|---|---|
Tab |
|
|
|
Cmd K |
|
|
|
Chat |
|
|
|
每个工具都有其最佳使用场景:
-
Tab 是你想要掌控的快速编辑的首选 -
Cmd K 在需要对代码的特定部分进行专注更改时表现出色 -
Chat 非常适合那些需要 Cursor 理解更广泛上下文的更大更改
当你使用 Chat 模式时(这可能感觉有点慢,但功能非常强大),通过提供良好的上下文来帮助它帮助你。使用 @files 指向你想要模仿的类似代码,或使用 @folder 让它更好地理解你的项目结构。不要害怕将更大的更改分解成更小的块 – 开始新的聊天有助于保持专注和高效。
要点
-
缩小更改范围,不要一次尝试做太多 -
尽可能包含相关上下文 -
为每个工具选择最适合的用途 -
经常创建新的聊天 -
使用 Ask 模式进行计划,使用 Agent 模式进行实现
原文:https://docs.cursor.com/guides/advanced/large-codebases
(文:AI智见录)