一、引言:为什么Cursor是开发者的下一个必备工具

作为一名开发者,你是否经常陷入这样的困境:

  • 花大量时间写重复的样板代码?

  • 频繁在IDE和浏览器之间切换查文档?

  • 面对复杂的遗留代码,理不清头绪?

  • 调试时对着错误栈一筹莫展?

  • 学习新框架时,需要反复看教程、示例?

传统的IDE虽然强大,但它们只是被动的工具——你需要告诉它做什么,它才会执行。而AI编程助手的出现,彻底改变了这一现状。Cursor正是其中的佼佼者:它将大语言模型深度集成到IDE中,不仅能智能补全代码,还能理解整个项目,与你对话,协助你完成从设计到部署的全过程。

Cursor能为你做什么?

  • 智能补全:基于整个项目的上下文,预测你下一步要写的代码,甚至能补全多行。

  • 代码生成:用自然语言描述需求,直接生成函数、类、测试、配置文件。

  • 代码解释:选中一段代码,让AI解释它的逻辑、潜在问题。

  • 重构优化:让AI帮你重构代码,应用设计模式,提升性能。

  • 调试助手:粘贴错误信息,AI分析原因并给出修复方案。

  • 文档查询:不用离开编辑器,直接用@docs查询框架API。

  • 项目级问答:索引整个代码库后,可以问“用户认证流程是怎样的?”。

本文的目标是带你从入门到精通,不仅学会Cursor的基本操作,更掌握如何让它成为你团队中的“超级实习生”——理解你的项目规范,遵循你的编码风格,协助解决复杂问题。无论你是前端、后端、全栈还是数据科学家,这篇文章都将成为你使用Cursor的权威指南。


二、快速上手指南:安装与基础配置

1. 下载与安装

访问 cursor.sh 官网,下载对应操作系统的版本(Windows/macOS/Linux)。安装过程非常简单,一路下一步即可。

首次启动时,Cursor会询问你之前使用的编辑器(如VSCode、IntelliJ IDEA、Sublime等),选择你熟悉的键位绑定,可以极大降低学习成本。如果不确定,也可以稍后在设置中修改。

2. 初始设置

  • 设置AI回复语言:打开设置(Cmd/Ctrl + ,),搜索“Preferred Language”,将其设为“中文”。这样AI默认会用中文回答。也可以在对话中直接说“请用中文回答”,AI会记住本次会话的语言偏好。

  • 界面汉化:如果你希望界面为中文,可以安装“Chinese (Simplified) Language Pack”扩展,然后重启Cursor。注意:AI回复语言和界面语言是独立的。

  • 配置API密钥(可选):Cursor本身提供免费额度(包括一定数量的快速请求和高级模型请求)。如果你有自己的OpenAI、Claude或Azure OpenAI密钥,可以在Cursor Settings中输入,使用自己的配额和模型。这对于需要更高容量或定制模型的场景很有用。

3. 首次体验

打开一个现有项目(比如你正在开发的项目),观察代码补全是否智能——它应该能基于项目中的已有代码提供补全建议。
试试 Ctrl+L(macOS:Cmd+L)打开聊天面板,输入“这个项目使用了哪些主要技术?”,看AI是否能正确识别。如果项目已经索引,它会给出比较准确的回答。


三、核心功能全景图

Cursor的核心功能可以归纳为以下几个维度:

功能 描述 常用入口
智能代码补全 基于整个工作区上下文,提供超越传统IDE的补全,甚至能预测下一步要写的代码 直接编码时自动触发
代码生成与修改 通过自然语言指令生成代码或修改选中代码 Ctrl+K(内联)、Ctrl+L(聊天)
代码解释与问答 选中代码,让AI解释其功能、潜在问题 右键菜单“Explain This”、Ctrl+L
项目级理解 索引整个代码库后,回答跨文件的问题 Ctrl+L 中提问,可配合@codebase
错误诊断与修复 粘贴编译错误或异常栈,AI分析原因并给出修复方案 聊天中粘贴错误信息
文档查询 内置常用框架文档,通过@docs快速查询 聊天或内联输入@docs 问题
代码库索引 扫描项目文件建立符号索引,让AI理解项目结构 自动进行,可手动触发

四、深度配置:Cursor Settings 与 Editor Settings

1. Cursor Settings(全局AI配置)

进入方式:Cmd/Ctrl + , → 选择“Cursor Settings”选项卡。

  • AI Model:选择使用的模型。推荐使用默认的“cursor-fast”(兼顾速度与质量)。若需要更高精度,可切换到GPT-4或Claude-3(消耗更多配额)。

  • Code Context:设置AI参考的代码上下文范围。

    • Current File:仅当前文件。

    • Open Tabs:当前打开的文件(推荐,兼顾性能和上下文)。

    • Workspace:整个项目(可能超出token限制,慎用)。

  • Auto-suggest:是否启用自动补全建议,以及触发方式。建议开启,若觉得干扰可改为手动触发。

  • Privacy:控制代码数据是否上传云端。对于敏感项目,可选择“Local Only”模式(需本地模型支持)或关闭数据上传。

  • Proxy:配置HTTP/HTTPS代理。

  • Telemetry:是否发送匿名使用数据帮助改进Cursor,可选。

2. Editor Settings(编辑器个性化)

进入方式:Settings → “Editor”选项卡。

  • Font Family / Font Size:推荐使用Fira Code、JetBrains Mono等连字字体。

  • Theme:选择深色或浅色主题,也可安装第三方主题。

  • Format on Save:保存时自动格式化代码,建议配合Prettier、Black等使用。

  • Files: Associations:自定义文件关联,如将.env文件关联为Properties语言。

  • Bracket Pair Colorization:启用括号对彩色化,便于阅读。

  • Word Wrap:是否自动换行。

  • Tab Size:设置制表符宽度(如2或4个空格)。

3. 扩展与插件管理

Cursor兼容VSCode的大部分插件。打开扩展市场(Ctrl+Shift+X),可以安装各种语言支持、主题、工具链插件。例如:

  • Python:安装Python扩展(微软官方)。

  • Java:安装“Extension Pack for Java”。

  • 前端:安装ESLint、Prettier等。


五、Java开发环境配置(以Spring Boot项目为例)

为了让Cursor正确识别Java项目结构、依赖,实现精准的AI辅助,需要配置Java开发环境。

详细步骤:

  1. 安装Java扩展:在扩展市场安装“Extension Pack for Java”(包含语言服务、调试器、Maven/Gradle支持)。

  2. 配置JDK:确保系统已安装JDK(推荐JDK 11或17),并在Cursor中设置java.configuration.runtimes。可以在settings.json中添加:

    "java.configuration.runtimes": [
        {
            "name": "JavaSE-11",
            "path": "/path/to/jdk-11",
            "default": true
        }
    ]
  3. 打开Maven/Gradle项目:直接打开项目根目录,Cursor会自动检测构建文件并下载依赖。等待依赖解析完成(状态栏有提示)。

  4. 等待索引完成:索引完成后,AI才能理解项目中的类、方法、字段关系。索引进度在状态栏可见。

  5. 验证:创建一个Controller,用Ctrl+K输入“生成一个REST接口,返回Hello World”,检查是否正确导入@RestController等注解。

常见问题:

  • 索引失败:尝试执行命令“Java: Clean Java Language Server Workspace”清理缓存。

  • 依赖解析慢:可配置Maven镜像或Gradle国内源。


六、快捷键大全:按开发工作流分类(专业完整版)

掌握快捷键能让你像专家一样流畅操作。以下按开发阶段分类,并标注使用频率(⭐⭐⭐⭐⭐为最高频)和实用技巧。

开发阶段 操作说明 Windows/Linux macOS 频率 使用技巧/场景
编码阶段 复制行向上/向下 Shift+Alt+↑ / ↓ Shift+Option+↑ / ↓ ⭐⭐⭐⭐ 无选中时复制整行,快速复制代码块
移动行向上/向下 Alt+↑ / ↓ Option+↑ / ↓ ⭐⭐⭐⭐ 调整代码顺序
删除行 Ctrl+Shift+K Cmd+Shift+K ⭐⭐⭐⭐ 快速删除整行
插入行在下方/上方 Ctrl+Enter / Ctrl+Shift+Enter Cmd+Enter / Cmd+Shift+Enter ⭐⭐⭐⭐ 在当前行下方/上方插入新行
添加行注释 Ctrl+/ Cmd+/ ⭐⭐⭐⭐⭐ 切换注释,用于快速调试
添加块注释 Shift+Alt+A Shift+Option+A ⭐⭐⭐ 用于多行注释
格式化文档 Shift+Alt+F Shift+Option+F ⭐⭐⭐⭐ 需安装格式化插件,保持代码风格一致
代码折叠/展开 Ctrl+Shift+[ / ] Cmd+Option+[ / ] ⭐⭐ 折叠/展开代码块,便于浏览长文件
自动修复(Quick Fix) Ctrl+. Cmd+. ⭐⭐⭐⭐ 显示错误/警告的快速修复选项,包括AI建议
多光标与选择 插入多个光标 Alt+点击 Option+点击 ⭐⭐⭐⭐ 批量编辑多行
在选中的每行末尾插入光标 Shift+Alt+I Shift+Option+I ⭐⭐⭐⭐ 适用于多行同时编辑,如添加分号
选择所有出现 Ctrl+F2 Cmd+F2 ⭐⭐⭐ 快速重命名变量/函数
添加下一个匹配 Ctrl+D Cmd+D ⭐⭐⭐⭐ 逐次选中相同单词,批量修改
列选择(矩形) Shift+Alt+拖动 Shift+Option+拖动 ⭐⭐⭐ 选择矩形区域,用于对齐编辑
导航与搜索 快速打开文件 Ctrl+P Cmd+P ⭐⭐⭐⭐⭐ 输入文件名/路径,支持模糊匹配
转到定义 F12 F12 ⭐⭐⭐⭐⭐ 跳转到变量/函数定义处
查看定义(预览) Alt+F12 Option+F12 ⭐⭐⭐ 悬浮窗口显示定义,不跳转
返回上一次位置 Alt+← Ctrl+- ⭐⭐⭐⭐⭐ 常用,类似浏览器后退
前进到下一次位置 Alt+→ Ctrl+Shift+- ⭐⭐⭐ 与返回对应
跳转到行 Ctrl+G Cmd+G ⭐⭐ 快速定位到某一行
跳转到符号 Ctrl+Shift+O Cmd+Shift+O ⭐⭐⭐⭐ 输入@符号,可加:过滤类型(类、方法)
全局查找 Ctrl+Shift+F Cmd+Shift+F ⭐⭐⭐⭐ 跨文件搜索,支持正则
在工作区查找符号 Ctrl+T Cmd+T ⭐⭐⭐ 搜索类、函数名,跨文件
打开最近文件 Ctrl+R Cmd+R ⭐⭐ 显示最近打开的文件列表
AI交互 打开聊天面板 Ctrl+L Cmd+L ⭐⭐⭐⭐⭐ 侧边栏对话,适合多轮交流
内联生成/修改 Ctrl+K Cmd+K ⭐⭐⭐⭐⭐ 最高频AI操作,务必熟记
打开独立聊天窗口 Ctrl+I Cmd+I ⭐⭐⭐ 适合临时小问题,不干扰侧边栏
解释选中代码 可自定义 可自定义 ⭐⭐⭐ 建议绑定快捷键,如 Ctrl+E
快速修复(AI建议) Ctrl+. Cmd+. ⭐⭐⭐⭐ 当有错误/警告时,显示AI修复选项
调试阶段 开始/继续调试 F5 F5 ⭐⭐⭐⭐
停止调试 Shift+F5 Shift+F5 ⭐⭐⭐
单步跳过 F10 F10 ⭐⭐⭐⭐
单步进入 F11 F11 ⭐⭐⭐⭐
单步跳出 Shift+F11 Shift+F11 ⭐⭐
切换断点 F9 F9 ⭐⭐⭐⭐
条件断点 右键点击断点 右键点击断点 ⭐⭐⭐ 设置条件,调试复杂逻辑
调试控制台 Ctrl+Shift+Y Cmd+Shift+Y ⭐⭐ 查看变量、执行表达式
重构与审查 重命名符号 F2 F2 ⭐⭐⭐⭐ 智能重命名,自动更新引用
提取方法/变量 Ctrl+Shift+R Cmd+Option+R ⭐⭐⭐ 通过命令面板触发,也可用快捷键
查看引用 Shift+F12 Shift+F12 ⭐⭐⭐ 显示所有引用位置
快速修复 Ctrl+. Cmd+. ⭐⭐⭐⭐ 也用于重构建议
窗口与视图 打开/关闭侧边栏 Ctrl+B Cmd+B ⭐⭐⭐⭐ 切换文件资源管理器等
拆分编辑器 Ctrl+\ Cmd+\ ⭐⭐⭐ 垂直拆分
切换编辑器组 Ctrl+1/2/3 Cmd+1/2/3 ⭐⭐ 数字对应第几个组
打开文件资源管理器 Ctrl+Shift+E Cmd+Shift+E ⭐⭐
打开搜索视图 Ctrl+Shift+F Cmd+Shift+F ⭐⭐
打开源代码管理 Ctrl+Shift+G Cmd+Shift+G ⭐⭐ Git面板
打开扩展市场 Ctrl+Shift+X Cmd+Shift+X ⭐⭐
终端操作 打开集成终端 Ctrl+| Cmd+ ⭐⭐⭐⭐
新建终端 Ctrl+Shift+| Cmd+Shift+ ⭐⭐
切换终端 Ctrl+PageUp/PageDown Cmd+PageUp/PageDown ⭐⭐
清空终端 右键点击 → 清除 右键点击 → 清除 ⭐⭐ 或输入 clear 命令
其他 打开命令面板 Ctrl+Shift+P Cmd+Shift+P ⭐⭐⭐⭐⭐ 执行任意命令,万能入口
打开设置 Ctrl+, Cmd+, ⭐⭐⭐
全屏 F11 Cmd+Ctrl+F

查看与自定义快捷键:命令面板输入“Keyboard Shortcuts”打开设置,可搜索命令并修改快捷键。建议将常用但未绑定的AI命令(如“Explain This”)绑定为易记组合键,如 Ctrl+E


七、AI交互模式详解:Chat 与 Ctrl+K 的完美配合

Cursor提供了两种主要的AI交互模式,理解它们的适用场景能让你事半功倍。

1. Chat模式(Ctrl+L / Cmd+L

  • 特点:打开侧边栏聊天面板,适合多轮对话、探索性任务。

  • 适用场景

    • 讨论设计方案:“我想实现一个用户认证系统,你觉得用JWT还是OAuth2?”

    • 排查复杂问题:“这段代码为什么会内存泄漏?”(粘贴代码)

    • 学习新技术:“解释一下React的useEffect和useLayoutEffect的区别。”

    • 需求评审:“帮我审查这个接口设计,有没有安全漏洞?”

  • 优势:对话历史自动保存,可随时回顾;可以引用多个文件、符号。

2. 内联模式(Ctrl+K / Cmd+K

  • 特点:在当前光标位置弹出输入框,生成或修改代码,操作流畅不离开编辑器。

  • 适用场景

    • 快速生成代码片段:“写一个函数,计算两个日期之间的天数。”

    • 修改选中代码:“把这个函数改成异步的。”

    • 添加注释:“给这段代码添加详细注释。”

    • 重构小段代码:“用stream API重写这个循环。”

  • 优势:即写即用,效率极高;支持选中代码后直接修改。

3. 选择原则

  • 需要上下文讨论、探索性任务 → Chat。

  • 目标明确、只需生成/修改代码 → Ctrl+K。

  • 也可结合使用:在Chat中讨论方案,然后用Ctrl+K落地。

4. 聊天历史管理

点击聊天面板顶部的历史图标(时钟),可查看之前的对话,并可恢复继续对话。也可以删除不需要的历史记录。


八、高质量提示词工程:像专家一样与AI对话

作为专业开发者,我们需要掌握如何设计提示词,以获取最准确、最有用的输出。以下是提示词设计的原则和大量实战模板。

提示词设计原则

  • 明确角色:给AI设定一个专业角色,如“你是一位资深的Java架构师”、“你是一名安全专家”。

  • 限定范围:指定技术栈、框架版本、语言特性等。

  • 提供上下文:使用@引用相关文件、符号,或直接粘贴代码片段。

  • 指定输出格式:要求生成代码、JSON、Markdown、表格等。

  • 要求解释:让AI在给出代码的同时解释思路,便于学习。

  • 迭代优化:如果第一次输出不理想,可以进一步追问或修正指令。

  • 审计要求:对于关键代码,可要求AI进行自我审查,指出潜在问题。

分类实战模板(每个模板包含使用场景、示例、技巧)

(1)代码生成类

模板1:生成完整类/组件

  • 提示词你是一位 [语言] 专家,请用 [框架] 创建一个 [组件类型],实现 [功能描述]。要求符合 [规范],包含必要的异常处理和日志,并给出使用示例。

  • 示例你是一位Java专家,请用Spring Boot创建一个REST Controller,实现用户注册功能,包含参数校验、日志记录,返回统一格式的JSON响应。

  • 技巧:引用已有的实体类或工具类,让AI自动注入。

模板2:生成复杂算法

  • 提示词实现一个 [算法名] 算法,输入 [描述输入],输出 [描述输出]。要求时间复杂度 O(x),并处理边界情况。请用 [语言] 编写,并附上单元测试。

  • 示例实现一个LRU缓存,支持get和put操作,容量固定,要求get和put时间复杂度O(1),用Java编写,并给出JUnit测试。

  • 技巧:可要求AI先解释算法思路,再生成代码。

模板3:生成配置文件

  • 提示词请生成一个 [工具] 的配置文件,用于 [目的]。要求包含 [关键配置项],并注释每个配置的作用。

  • 示例请生成一个ESLint配置文件,用于React项目,要求使用Airbnb风格,并支持TypeScript。

  • 技巧:引用现有package.json,让AI自动检测依赖版本。

(2)代码解释与学习类

模板4:解释代码片段

  • 提示词请解释以下代码的功能、输入输出、关键逻辑,并指出可能存在的性能问题或改进点。(后粘贴代码)

  • 示例请解释这段Python代码的功能:def fib(n): return n if n<2 else fib(n-1)+fib(n-2)

  • 技巧:如果代码来自某个文件,用@引用,并指出行号。

模板5:学习新技术

  • 提示词你是一位 [技术领域] 专家,请用通俗易懂的方式解释 [概念],并给出一个简单的代码示例。

  • 示例你是一位前端专家,请用通俗易懂的方式解释React Hooks中的useEffect,并给出一个计数器示例。

  • 技巧:可以要求对比其他类似概念。

(3)代码优化与重构类

模板6:优化代码性能

  • 提示词请优化以下代码的性能,重点关注 [方面,如时间复杂度、内存使用]。给出优化后的代码,并解释优化思路。(粘贴代码)

  • 示例请优化这段多重循环的代码,减少时间复杂度,用Java重写。

  • 技巧:可要求提供性能对比分析。

模板7:重构代码

  • 提示词将以下代码重构为 [设计模式/更简洁的形式],保持功能不变。请说明重构的好处。(粘贴代码)

  • 示例将这段条件语句重构为策略模式,用Java实现。

  • 技巧:引用相关类,确保重构后代码能无缝集成。

(4)测试与调试类

模板8:生成单元测试

  • 提示词为以下 [类/方法] 生成单元测试,使用 [测试框架],覆盖所有分支和边界情况。(可引用代码或用@

  • 示例为UserService的register方法生成JUnit 5测试,覆盖成功注册、邮箱已存在、密码强度不足等场景。

  • 技巧:要求生成测试数据,或使用Mockito模拟依赖。

模板9:调试错误

  • 提示词运行以下代码时出现错误:[错误信息]。请分析原因,并给出修复后的代码。(粘贴代码)

  • 示例运行这段Python代码报错“KeyError: 'name'”,请修复。

  • 技巧:如果错误涉及项目配置,引用相关配置文件(如pom.xml、requirements.txt)。

(5)文档与注释类

模板10:生成文档注释

  • 提示词为以下 [类/方法] 生成Javadoc/文档注释,说明功能、参数、返回值、异常,并附上使用示例。(可引用代码)

  • 示例为这个工具类生成Javadoc,包括每个方法。

  • 技巧:可要求生成中英文双语文档。

模板11:生成README

  • 提示词为这个项目生成README.md,包含项目简介、技术栈、安装步骤、运行方式、API文档(如果有)。(可引用项目文件)

  • 示例为这个Spring Boot项目生成README.md,包含数据库配置说明。

  • 技巧:引用pom.xml和关键配置,让AI自动提取信息。

(6)安全审计类

模板12:代码安全审查

  • 提示词你是一位安全专家,请审计以下代码,找出所有可能的安全漏洞(如SQL注入、XSS、CSRF、权限绕过),并给出修复建议。(粘贴代码)

  • 示例审计这个登录接口,检查是否存在SQL注入或会话固定漏洞。

  • 技巧:可要求按照OWASP Top 10标准进行审查。

(7)迁移与升级类

模板13:框架迁移

  • 提示词将以下 [旧框架] 代码迁移到 [新框架],列出需要修改的关键点,并提供迁移后的代码示例。(可引用项目)

  • 示例将这段Spring Boot 2.x的代码迁移到Spring Boot 3.x,注意javax到jakarta的变更。

  • 技巧:引用pom.xml,让AI自动分析依赖变化。

(8)数据库操作类

模板14:生成SQL/ORM操作

  • 提示词使用 [ORM框架] 实现 [数据操作],包括实体定义、Repository层、事务处理。

  • 示例使用Spring Data JPA实现用户表的CRUD操作,并添加事务注解。

  • 技巧:引用现有实体类,保持字段一致。

(9)API设计与集成

模板15:设计REST API

  • 提示词设计一个REST API用于 [功能],包括端点、请求/响应格式、状态码,并给出OpenAPI 3.0描述。

  • 示例设计一个订单管理的REST API,支持创建、查询、取消订单,使用OpenAPI 3.0格式。

  • 技巧:可要求生成对应的Controller代码。

(10)性能分析类

模板16:性能瓶颈分析

  • 提示词分析以下代码的性能瓶颈,提出优化方案,并给出优化后的代码。(粘贴代码)

  • 示例分析这个多重循环的性能瓶颈,提出优化方案,并重写。

  • 技巧:可要求用大O表示法分析时间复杂度。

(11)代码规范落地

模板17:根据规范重写代码

  • 提示词根据以下编码规范重写这段代码:[规范文本]。确保代码符合规范要求。(粘贴代码)

  • 示例根据Google Java Style重写这个类,包括命名、缩进、Javadoc。

  • 技巧:规范可以写入.cursorrules全局生效。

(12)复杂任务分解

模板18:将大任务拆解

  • 提示词我需要实现 [复杂功能],请帮我拆解成多个子任务,并给出每个子任务的实现要点。

  • 示例我需要实现一个用户认证系统(注册、登录、JWT、权限控制),请拆解任务。

  • 技巧:后续可针对每个子任务用AI生成代码。

提示词组合技巧

  • 链式调用:先让AI设计方案,再让AI生成代码,最后让AI审查。

  • 角色叠加你是一位Java架构师和DBA专家,请设计这个系统的数据库表结构,并生成对应的JPA实体。

  • 输出格式控制请用Markdown表格形式列出所有API端点。


九、@符号深度解析:精准控制AI的上下文

@ 是Cursor中极其强大的上下文注入工具,能让AI精准理解你引用的内容。以下是所有支持的 @ 类型及用法。

1. @引用项目文件

  • 语法@文件名 或 @路径/文件名

  • 示例@UserService.java@src/main/java/com/example/Hello.java

  • 作用:将指定文件的全部内容作为上下文。AI能读取文件中的所有代码、注释。

  • 使用场景

    • 询问文件内容:“@UserService.java 这个类的主要功能是什么?”

    • 生成新代码时参考现有代码:“仿照@OldService.java 的写法,创建一个新服务。”

    • 调试时提供完整上下文:“@UserController.java 中的update方法报错,请分析。”

2. @引用符号(类、方法、变量)

  • 语法@#符号名(如 @#UserService@#findAll

  • 作用:引用项目中特定的符号定义。AI会提取该符号的定义(包括其类型、签名、文档),但不会包含整个文件,节省上下文。

  • 使用场景

    • 询问某个类的结构:“@#User 类有哪些字段?”

    • 生成调用代码:“调用 @#userRepository.save 方法保存用户。”

    • 分析依赖:“@#UserService 用到了哪些其他类?”

3. @引用整个代码库(codebase)

  • 语法@codebase

  • 作用:将整个项目的索引作为上下文,AI可以回答涉及全局的问题,如“这个项目中哪里使用了多线程?”、“用户认证流程是怎样的?”

  • 注意:需要项目已完全索引,且可能消耗大量token,谨慎使用。

4. @引用文档(docs)

  • 语法@docs 查询内容

  • 作用:查询Cursor内置的文档库,包括各种框架、库的官方文档。AI会检索相关文档并回答。

  • 示例@docs Spring Boot 如何配置多数据源?

  • 支持文档:目前支持大量流行框架,如React、Vue、Spring、Django等。可在命令面板中查看完整列表。

  • 使用场景:快速查阅API用法,无需离开编辑器。

5. @引用网页(web)

  • 语法@web 查询内容

  • 作用:让AI联网搜索最新信息,如“@web 2024年最新的Java趋势”。需要Cursor处于在线状态,且可能消耗额外配额。

  • 使用场景:查询实时信息、最新库版本、技术新闻等。

6. @引用Git提交/分支(git)

  • 语法@git <commit-hash> 或 @git <branch-name>

  • 作用:引用特定Git提交或分支的代码变更,AI可以分析diff、总结修改。

  • 示例@git main 对比当前分支,有哪些主要变化?

  • 使用场景:代码审查、生成提交信息、分析冲突。

7. @引用当前选择(selection)

  • 语法@selection(在Chat中,如果已选中代码,可输入此指令)

  • 作用:引用当前选中的代码片段,等同于粘贴。

  • 使用场景:在Chat中解释或修改选中的代码。

8. @引用终端输出(terminal)

  • 语法@terminal(需终端有输出)

  • 作用:引用最近终端输出的内容,如错误日志。

  • 示例@terminal 这个错误是什么意思?

9. @组合使用

  • 可以同时引用多个项目,如 @UserController @UserService 请分析它们之间的依赖关系。

  • 也可以与普通文本混合,如 请参考 @UserService 的写法,为 @UserController 添加日志。

10. @使用技巧与注意事项

  • 优先使用符号引用而非文件引用,以节省上下文token。

  • 对于大型文件,引用整个文件可能超出模型限制,建议只引用关键部分。

  • 如果引用多个文件,注意上下文总长度,必要时只保留核心。

  • @codebase 慎用,因为它会消耗大量token,可能导致后续对话受限。

  • @docs 和 @web 需要网络,且可能受模型限制,有时不如直接Google。


十、代码库索引:让AI真正理解你的项目

索引的原理

Cursor会扫描项目中的文件,建立符号表、依赖关系、调用图等,存储在本地索引中。索引后,AI才能回答跨文件的问题、准确生成符合项目结构的代码。

如何触发索引

  • 自动索引:打开项目后自动开始,状态栏显示“Indexing...”。

  • 手动触发:右键项目根目录 → “Reindex Project”。

  • 增量索引:当文件修改时,会自动更新。

查看索引状态

点击状态栏的索引指示器,可查看进度、暂停或重新索引。

优化索引性能:.cursorignore 文件详解

作用

类似于.gitignore,用于告诉Cursor在索引时忽略某些文件或文件夹,以减少索引负担、加快速度,并避免将敏感文件纳入上下文。

配置位置

在项目根目录创建 .cursorignore 文件。

语法

每行一个忽略模式,支持glob通配符(如 ***?[abc])。空行或以 # 开头的行会被忽略。

常用模式示例

# 忽略node_modules目录
node_modules/

# 忽略所有构建输出目录
dist/
build/
target/

# 忽略所有日志文件
*.log

# 忽略特定文件
secrets.json
.env

# 忽略所有隐藏文件(以点开头)
.*

# 但保留某些隐藏文件(取反)
!.gitignore
!.cursorrules
最佳实践
  • 至少忽略 node_modulestargetbuilddist 等依赖和输出目录。

  • 忽略包含敏感信息的文件(如 .env、密钥文件)。

  • 忽略大型二进制文件(如图片、视频)。

  • 使用 ! 模式保留必要的隐藏文件(如 .gitignore.cursorrules)。

  • 定期审查 .cursorignore,确保没有遗漏重要文件。

注意事项

被忽略的文件不会出现在AI上下文中,也不会用于代码补全和索引。如果AI需要引用这些文件,需手动用@引用,但可能因忽略而无法读取。

索引失败处理

  • 如果索引长时间卡住,尝试执行“Developer: Reload Window”重启。

  • 清理索引缓存:命令面板输入“Indexing: Rebuild Index”。

  • 检查是否被安全软件拦截,或磁盘空间不足。

  • 检查 .cursorignore 是否误将关键文件忽略。

索引生效后的能力

  • 跨文件问答:“这个项目中哪里定义了数据库连接池?”

  • 代码生成时自动导入项目内已有工具类。

  • 重构时识别所有引用,确保安全。


十一、Rules规则:让AI遵循团队编码规范

什么是Rules

Rules定义了AI生成代码的行为准则,相当于给AI一份“编码规范文档”。规则可以是简单的命名约定,也可以是复杂的架构约束。

两种作用域

  1. 工作空间规则(项目级):在项目根目录创建 .cursorrules 文件,仅对当前项目生效。适用于团队共享的规范。

  2. 个人规则(全局):在Cursor Settings中找到“Rules”输入框,写入全局规则,应用于所有项目。适用于个人偏好或全局标准。

优先级关系

  • 工作空间规则覆盖个人规则:当项目存在 .cursorrules 时,其规则将覆盖个人规则中的冲突部分;如果个人规则中有而工作空间规则未定义,则个人规则仍生效。

  • 具体行为:Cursor会合并两者,但工作空间规则的优先级更高。建议将项目特定规范放在 .cursorrules,将通用偏好(如缩进大小)放在个人规则。

规则编写最佳实践

  • 从简单开始:先定义缩进、命名、注释等基本规则。

  • 逐步细化:根据团队实际需求,添加框架偏好、禁止API、日志规范等。

  • 使用自然语言:AI能理解自然语言,所以规则可以写成:“使用4个空格缩进,类名使用UpperCamelCase,方法名使用lowerCamelCase。”

  • 结构化格式示例(YAML):

    
    # 编码风格
    indent_size: 4
    use_tabs: false
    line_length: 120
    # 命名规范
    class_naming: UpperCamelCase
    method_naming: lowerCamelCase
    constant_naming: UPPER_SNAKE_CASE
    # 注释要求
    require_javadoc: public, protected
    todo_format: "TODO: [姓名] - [日期] - [描述]"
    # 框架偏好
    java_framework: Spring Boot
    orm: Spring Data JPA
    # 禁止API
    forbidden_apis:
      - java.util.Date (use java.time.*)
      - System.out.println (use SLF4J Logger)
    # 安全规范
    security:
      - avoid_sql_injection: use prepared statements
      - validate_all_user_inputs
    # 异常处理
    exception_handling: use custom exceptions for business errors
    # 日志要求
    logging: use SLF4J with log levels (info for normal flow, debug for details)

规则生效验证

生成一段代码,检查是否符合规则。例如,如果规则禁止使用System.out.println,生成的代码应使用Logger。

调试规则

  • 若AI未遵守,可检查规则文件格式是否正确(如YAML缩进错误)。

  • 在提示词中强调“请遵循.cursorrules中的规则”。

  • 尝试重启Cursor,确保规则重新加载。

  • 检查工作空间规则和个人规则是否有冲突。

团队共享规则

将 .cursorrules 加入版本控制,团队所有成员共享一套AI行为准则。


十二、Cursor Docs功能详解:内置文档查询

什么是Cursor Docs

Cursor内置了常用框架和库的文档,可以通过 @docs 快速查询,无需切换窗口。

如何使用

  • 在Chat或Ctrl+K中输入 @docs 你的问题,如 @docs React useState 用法

  • 也可以在命令面板中搜索“Docs: Search”打开文档面板。

支持哪些文档

目前包括React、Vue、Angular、Spring、Django、Flask、Express、Next.js、Nuxt、Tailwind CSS等。可在设置中查看完整列表或请求添加。

使用场景

  • 快速查找API用法,如 @docs Spring Boot @RequestBody 注解

  • 比较不同框架的差异,如 @docs React vs Vue 生命周期

  • 学习新库时,用 @docs 查询概念。

技巧

如果 @docs 返回的结果不够准确,可以尝试加上更具体的关键词,或改用 @web 搜索最新信息。


十三、实战演练:从零开发一个Spring Boot + React全栈应用

通过一个完整项目,串联所有知识点,展示Cursor如何贯穿开发全流程,大幅提升效率。

项目需求

开发一个简单的任务管理应用(Task Manager),后端用Spring Boot,前端用React,数据库用MySQL。

阶段1:项目初始化

  • 后端初始化:用Chat询问“如何创建一个Spring Boot项目,使用Maven,包含web、jpa、mysql依赖?” AI给出pom.xml内容和主类。用Ctrl+K在pom.xml中快速插入依赖。

  • 前端初始化:用Chat询问“如何用Create React App创建一个React项目?” AI给出命令。在终端执行命令,或用Ctrl+`快速打开终端。

阶段2:数据库设计

  • 在Chat中问:“设计任务表,包含id、标题、描述、状态、创建时间、截止时间,状态用枚举。” AI给出SQL建表语句。

  • 用Ctrl+K生成对应的JPA实体类,引用SQL语句。

  • 设置Rules确保实体类命名规范(如使用@Entity@Table等)。

阶段3:后端开发

  • Repository层:Ctrl+K输入“创建JPA Repository接口,提供根据状态查询任务的方法”,引用Task实体。

  • Service层:Chat中引用TaskRepository,要求“生成TaskService,包含增删改查方法,添加事务注解和日志”。

  • Controller层:Ctrl+K输入“创建REST Controller,提供任务列表、详情、创建、更新、删除接口,返回统一响应格式”。使用@引用TaskService,让AI自动注入。

  • 测试:为Service方法生成单元测试,用Ctrl+K选中方法,输入“生成JUnit测试,使用Mockito”。

阶段4:前端开发

  • API服务:在Chat中引用后端的Controller,要求“根据这个Controller生成前端的API调用服务(使用axios)”。

  • 组件开发:用Ctrl+K生成任务列表组件、表单组件,引用API服务。

  • 状态管理:用Chat询问“如何在React中管理任务列表状态?” AI给出useState或useReducer示例。

  • 样式:用@docs查询Tailwind CSS用法,快速添加样式。

阶段5:联调与调试

  • 运行前后端,遇到跨域问题,用Chat粘贴错误信息,AI给出解决方案(如添加@CrossOrigin注解)。

  • 前端调用API失败,用@web搜索axios拦截器用法,添加统一错误处理。

阶段6:部署准备

  • 用Chat生成Dockerfile,分别用于前后端。

  • @docs查询如何配置nginx反向代理。

  • 生成README.md,包含项目介绍、技术栈、部署步骤。

全程亮点

频繁使用快捷键、@引用、提示词模板和Rules,保持代码风格一致,快速迭代。


十四、常见问题与解决方案

Q1: AI生成的代码不符合项目规范怎么办?

  • 检查是否配置了.cursorrules,并确保规则正确。

  • 在提示词中明确要求遵循规则,或提供示例代码让AI模仿。

Q2: 索引一直卡住怎么办?

  • 尝试重启Cursor,或执行“Indexing: Rebuild Index”。

  • 检查.cursorignore是否误将重要文件排除。

  • 排除不必要的文件夹,减少索引负担。

  • 检查项目是否有损坏的文件(如超大文件、二进制文件)。

Q3: AI回答上下文超限(token超长)

  • 减少引用的文件数量,优先用符号引用。

  • 在Chat中分割问题,分步询问。

  • 使用@codebase要谨慎,必要时先让AI总结关键部分。

Q4: AI不理解我的项目结构

  • 确保项目已完全索引,且未在.cursorignore中排除关键文件。

  • 在提示词中用@明确引用相关文件。

  • 重新索引项目。

Q5: 如何让AI生成更安全的代码?

  • 在Rules中添加安全规范,如禁止SQL拼接。

  • 在提示词中要求进行安全审计。

  • 使用@docs查询安全最佳实践。

Q6: Cursor的免费额度用完了怎么办?

  • 可以购买付费套餐,或绑定自己的API密钥。

  • 优化提示词,减少不必要的请求。

  • 使用本地模型(如通过Ollama)作为替代。

Q7: 工作空间规则和个人规则冲突时以哪个为准?

  • 工作空间规则优先级更高,会覆盖个人规则中的冲突部分。

  • 建议将项目特有规范放在工作空间,通用偏好放在个人规则。

Q8: .cursorignore 和 .gitignore 有何区别?

  • .cursorignore 只影响Cursor索引,不影响版本控制。

  • 可以独立于.gitignore,但通常建议复制.gitignore的忽略规则,并添加Cursor特定忽略。


十五、进阶技巧与扩展

1. 自定义AI模型

如果你有自己的私有模型,可以通过API集成到Cursor中,实现完全本地化。在Cursor Settings中配置OpenAI兼容的API端点即可。

2. 使用本地模型

Cursor支持连接Ollama、LM Studio等本地推理服务,适合对数据隐私要求高的场景。在设置中配置本地服务的URL即可。

3. 与CI/CD集成

利用Cursor的CLI工具(如果有)在CI中自动审查代码。目前Cursor尚未提供官方CLI,但可以通过脚本调用其API实现类似功能。

4. 编写自定义命令

通过Cursor的扩展API(如果开放)编写插件,扩展AI能力。目前Cursor支持VSCode插件,你可以开发自己的扩展来增强功能。

5. 快捷键脚本

使用AutoHotkey(Windows)或Karabiner(macOS)自定义系统级快捷键,一键触发Cursor命令。例如,设置全局快捷键Ctrl+Alt+K,模拟在Cursor中按下Ctrl+K

6. 团队模板库

建立团队共享的提示词模板库,新人快速上手。可以将模板写在.cursorrules中,或单独存放为Markdown文件,需要时复制。

7. 结合Git工作流

  • 在提交前用AI审查代码变更:将git diff输出粘贴到Chat,要求“审查这些变更,指出潜在问题”。

  • 生成提交信息:粘贴git diff --cached,要求“根据这些变更生成规范的提交信息”。


十六、总结与学习资源

Cursor的核心优势

将AI无缝融入开发环境,让开发者专注于高价值设计,减少机械编码。通过本文的学习,你应该已经掌握了:

  • 快捷键与高效操作

  • 提示词工程与@引用

  • 代码库索引与.cursorignore

  • Rules规则配置

  • 内置文档查询

  • 实战全流程

学习路径建议

  1. 入门:先从快捷键和基本AI交互入手,逐步熟悉。

  2. 进阶:积累个人提示词模板库,提升效率。

  3. 精通:深入研究Rules和@引用,实现个性化AI助手。

  4. 扩展:关注Cursor官方更新,新功能往往能进一步提效。

推荐资源

  • 官方文档cursor.sh/docs(必读)

  • Discord社区discord.gg/cursor(交流技巧、反馈问题)

  • YouTube教程:搜索“Cursor AI tutorial”获取视频教程

  • GitHub示例:搜索“cursor-ai-examples”获取灵感

最后提醒

AI是助手,不是替代品。始终审查生成的代码,确保其正确性和安全性。Cursor能帮你节省大量时间,但最终的决策和责任仍在开发者手中。

祝你在Cursor的陪伴下,编程效率飞升,享受创造的乐趣!

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐