大型代码库
如何在 Cursor 中处理大型代码库 与小型项目相比,处理大型代码库会带来一系列全新的挑战。结合我们在扩展 Cursor 自身代码库的经验,以及来自管理超大代码库客户的见解,我们总结出了一些应对复杂性的实用模式。
本指南将介绍我们在大型代码库中发现的一些有效技巧。

使用 Chat 快速熟悉陌生代码
在大型代码库中导航,尤其是对你来说全新的项目,往往很有挑战性。你可能需要频繁 grep、搜索和点击,才能找到想要的代码片段。而通过 Chat,你可以直接提问,快速定位目标内容,并获得详细的工作原理解释。
例如,我们可以让 Chat 帮助查找 Cursor 中代码库索引的实现细节,甚至请求一些示例以便更好理解。
为了让 Cursor 更好地理解你代码库的结构,建议在设置中启用“Include Project Structure”以提升性能。

为特定领域的知识编写规则
如果你要让新同事加入你的代码库,你会提供哪些背景信息,确保他们能快速做出有意义的贡献?
你对这个问题的答案,同样对 Cursor 很有价值。每个组织或项目都有一些文档未能完全覆盖的隐性知识。有效使用规则,是确保 Cursor 全面理解项目的最佳方式。
例如,如果你要写一份新功能或服务的实现说明,可以考虑写一条简短的规则,作为长期文档保存。
---
description: Add a new VSCode frontend service
---
1. **Interface Definition:**
- Define a new service interface using `createDecorator` and ensure `_serviceBrand` is included to avoid errors.
2. **Service Implementation:**
- Implement the service in a new TypeScript file, extending `Disposable`, and register it as a singleton with `registerSingleton`.
3. **Service Contribution:**
- Create a contribution file to import and load the service, and register it in the main entrypoint.
4. **Context Integration:**
- Update the context to include the new service, allowing access throughout the application.
如果有通用的格式化规范,也可以基于 glob 模式自动附加规则,确保 Cursor 遵循。
---
globs: *.ts
---
- Use bun as package manager. See [package.json](mdc:backend/reddit-eval-tool/package.json) for scripts
- Use kebab-case for file names
- Use camelCase for function and variable names
- Use UPPERCASE_SNAKE_CASE for hardcoded constants
- Prefer `function foo()` over `const foo = () =>`
- Use `Array<T>` instead of `T[]`
- Use named exports over default exports, e.g (`export const variable ...`, `export function `)
密切关注计划创建流程
对于较大的变更,花更多时间制定精确、范围明确的计划,可以显著提升 Cursor 的输出质量。
如果你发现多次尝试同一提示后仍未获得理想结果,可以尝试“放大视角”,像为同事写 PRD 一样,从头制定更详细的计划。很多时候,最难的是确定应该做哪些更改,这正是人类擅长的部分。有了明确的指令后,部分实现工作就可以交给 Cursor。
利用 AI 辅助计划制定的一个方法是使用 Ask 模式。开启 Ask 模式后,将你在项目管理系统、内部文档或零散想法中的上下文信息都输入进去。思考你已经知道需要包含的文件和依赖,可能是你想集成的代码片段,也可能是整个文件夹。
- 制定一个关于我们应该如何创建新功能的计划(就像 @existingfeature.ts 一样)
- 如果有任何不清楚的地方,请向我提问(最多3个问题)
- 一定要搜索整个代码库
@Past Chats(我之前的探索性提示)
这里还有一些来自【项目管理工具】的更多上下文:
【粘贴的工单描述】
例如,你可以让模型制定计划并通过提问收集上下文,参考之前的探索提示和工单描述。推荐使用如 claude-3.7-sonnet
、gemini-2.5-pro
或 o3
这样的“思考型”模型,它们能更好地理解变更意图并综合制定计划。
在正式实施前,你可以借助 Cursor 反复完善你的计划。

为任务选择合适的工具
效使用 Cursor 的关键之一是为每个任务选择合适的工具。思考你的目标,并选择最能让你保持高效的方式。
工具 | 使用场景 | 优势 | 局限性 |
---|---|---|---|
Tab | 快速、手动更改 | 完全控制,速度快 | 仅限单文件 |
Cmd K | 单文件范围内的更改 | 集中编辑 | 仅限单文件 |
Chat | 较大、跨多文件更改 | 自动收集上下文,深度编辑 | 较慢,上下文较重 |
每种工具都有其最佳应用场景:
- Tab:适合你想主导、快速编辑的场景
- Cmd K:适合需要对特定代码段进行集中修改的场景
- Chat:适合需要 Cursor 理解更广泛上下文的大型变更
在使用 Chat 模式时(虽然速度稍慢,但功能极强),请通过提供良好的上下文来帮助模型。例如,使用 @file 指向你想要模仿的代码,或用 @folder 让模型更好地理解项目结构。不要害怕将大变更拆分为小块——新建聊天有助于保持专注和高效。
要点总结
- 缩小变更范围,不要试图一次做太多
- 尽量包含相关上下文
- Chat、Cmd K 和 Tab 各司其职,按需使用
- 经常新建聊天,保持专注
- 用 Ask 模式做计划,用 Agent 模式实现