Cursor 是一款功能强大的 AI 优先代码编辑器,可增强开发工作流程。
主要提供三个核心方向:
深度集成 AI 模型
不是简单地接入模型,而是让 AI 充当了编译器的核心交互方式。
- 支持代码块对话、项目级对话、模型自由选择。
强上下文理解能力
可以自动识别项目文件、代码块、错误信息等等,提供更直观准确的 AI 修改能力。
对话式开发体验
仅需用自然语言沟通,Cursor 就会根据指令完成布置的任务,使用者可以轻松扮演产品经理,让 Cursor 理解你的命令自行工作。
Cursor AI 配置
在 Cursor 中可通过页面右上角的设置按钮(齿轮图标)或者使用快捷键
Ctrl + Shift + J
打开 AI 设置。
Cursor 编辑器配置
使用快捷键
Ctrl + Shift + P
打开控制面板,输入Preferences: Open Settings (UI)
。
配置 Java 语言环境
自动读取情况:
如果在系统环境变量中正确配置了
JAVA_HOME
和MAVEN_HOME
,Cursor 能自动识别并应用这些配置。
手动配置情况:
在 Cursor 输入快捷键
Ctrl + Shift + P
打开命令面板。输入 Preferences: Open User Settings (JSON) 并回车,打开
settings.json
文件。添加或修改以下内容。
{
....
// 配置 JDK
"java.home": "D:/program/jdk1.8",
// 或者使用如下属性配置 JDK
"java.jdt.ls.java.home": "D:/program/jdk1.8",
// 配置 JDK 的多版本,类似于在 IDEA 中的 Project Settings 中选择不同的 Java 运行环境,用于项目启动
"java.configuration.runtimes": [
{
"name": "JavaSE-1.8",
"path": "D:/program/jdk1.8",
"default": true
},
{
"name": "JavaSE-11",
"path": "D:/program/jdk11",
},
{
"name": "JavaSE-17",
"path": "D:/program/jdk17"
},
],
// Maven 环境配置
"java.configuration.maven.userSettings": "D:/program/apache-maven-3.6.3/conf/settings.xml"
}
安装 Java 环境相关插件
在 Cursor 中,使用快捷键
Ctrl + Shift + X
打开插件,安装插件 Extension Pack for Java
IDEA 中使用 Cursor
Switch2Cursor插件:
在 IDEA 中打开
Settings → Tools → Switch2Cursor
配置 Cursor Path 为你的 Cursor 可执行文件的路径。如:
D:\software\cursor\Cursor.exe
需要替换成自己电脑的 Cursor 安装路径。使用快捷键切换到 Cursor:
- 打开项目:
Option/Alt + Shift + P
- 打开当前文件:
Option/Alt + Shift + O
Switch2IDEA插件:
配置 IDEA 路径。
打开 Cursor 设置,点击
General → Editor → open editor settings → Extensions → Switch2IDEA → Idea Path
使用快捷键切换到 IDEA:
- 打开项目:
Option/Alt + Shift + P
- 打开当前文件:
Option/Alt + Shift + O
Tab 键:代码自动补全
使用
Tab
键接受建议,Esc
键拒绝建议,Ctrl + →
逐字部分接受建议。
单行/多行代码补全
新建一个工具类,在类中写上注释计算数组平均值:
public class ArrayUtil {
// 计算数组平均值
}
按 Tab
键,Cursor 自动生成代码:
public class ArrayUtil {
// 计算数组平均值
public static double average(int[] array) {
if (array == null || array.length == 0) {
return 0;
}
int sum = 0;
for (int i = 0; i < array.length; i++) {
sum += array[i];
}
return (double) sum / array.length;
}
}
智能代码重写
/**
* 数组工具类
*/
public class ArrayUtil {
// 计算数组平均值
public static double average(int[] array) {
if (array == null || array.length == 0) {
return 0;
}
int sum = 0;
for (int i = 0; i < array.length; i++) {
sum += array[i];
}
return (double) sum / array.length;
}
public void arrayFor() {
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5);
List<Integer> evenNumbers = new ArrayList<>();
for (int num : numbers) {
if (num % 2 == 0) {
evenNumbers.add(num);
}
}
}
}
使用 Stream 重构 arrayFor
方法,按 Tab
键,自动补全:
// 使用 stream
// 光标放在方法块的任意位置,按 Tab 键
public void arrayFor() {
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5);
List<Integer> evenNumbers = numbers.stream().filter(num -> num % 2 == 0).collect(Collectors.toList());
}
自动联想
新建一个 POJO 类,输入几个变量后,Cursor 会自动联想,使用
Tab
键快速生成代码。
public class Person {
// 姓名
private String name;
// 年龄
private int age;
// 性别
private String gender;
// Cursor 会继续联想变量类型,按 Tab 键快速生成
}
Tab 相关配置
Tab 相关配置修改位置:
Cursor Settings > Tab
对话模式
Chat(之前称Composer)是 Cursor 的 AI 助手,位于编辑器的侧边栏中,通过自然语言与代码库进行交互。
可以提出问题、请求代码编辑、获取终端命令建议等。
使用
Ctrl + L
打开侧边栏中的聊天窗口,用中文文字输入请求,Cursor 将做出相应的响应。
以下是几个参考模板。
代码生成类
[任务类型]:请生成一个 {功能描述} 的 {编程语言/框架} 实现
[具体要求]:
1. 使用 {特定技术/库}
2. 包含 {特定功能点}
3. 符合 {编码规范/设计模式}
请生成一个学习计划页面的 HTML + CSS + JavaScript 实现
[具体要求]:
1. 使用Tailwind CSS v3 和 Font Awesome
2. 包含任务添加、编辑、删除功能
3. 包含日历视图展示学习计划
4. 包含学习进度可视化图表
5. 符合现代UI设计原则和响应式设计
6. 具有平滑的动画和交互效果
代码修改类
[任务类型]:请帮我修改 {上下文:具体文件/代码片段},实现 {预期功能}
[当前问题]:{现有的错误/不足描述}
[具体要求]:
1. 保持 {现有功能/结构} 不变
2. 使用 {特定方法/技术} 改进
3. 修复 {具体错误/警告}
请帮我修改当前的 React 组件,优化列表渲染性能。
当前问题:滚动时列表卡顿,存在明显性能问题。
要求:
1. 保持现有 UI 不变
2. 使用 React.memo 和虚拟列表技术优化
3. 添加性能监控日志
代码解释类
[任务类型]:请解释 {代码片段/功能模块} 的 {具体方面}
[上下文信息]:{相关业务背景/技术栈}
[具体问题]:
1. {不理解的语法/逻辑}
2. {特定设计选择的原因}
3. {潜在的问题/优化点}
请解释这段 TypeScript 代码的泛型约束和类型推导逻辑。
上下文:这是一个用于数据验证的工具函数。
具体问题:
1. <T extends object> 这里为什么要加 extends object?
2. 类型推导是如何工作的?
3. 是否存在类型安全隐患?
流程自动化类
[任务类型]:请创建一个自动化流程,实现 {目标描述}
[操作步骤]:
1. 从 {数据源} 获取 {数据类型}
2. 执行 {数据处理/转换操作}
3. 将结果保存到 {目标位置}
4. 触发 {后续操作/通知}
[具体要求]:
1. 使用 {特定工具/API}
2. 添加 {错误处理/重试机制}
3. 生成 {日志/报告}
请创建一个自动化流程,每天凌晨从 GitHub API 获取仓库星标数,保存到 Google Sheets 并生成趋势图。
要求:
1. 使用 GitHub REST API v3
2. 添加异常处理和邮件通知
3. 生成周/月增长趋势图表
命令行辅助类
[任务类型]:请提供 {操作场景} 的 {操作系统} 命令
[具体需求]:
1. {执行的具体操作}
2. 包含 {特定参数/选项}
3. 处理 {特殊情况/错误}
请提供在 macOS 上批量压缩图片的命令行方案。
需求:
1. 将当前目录下所有 PNG/JPG 图片压缩 50%
2. 保留原始文件并添加 "-compressed" 后缀
3. 显示每个文件的压缩前后大小对比
Chat三种模式
Agent 代理模式(默认): 全能模式,可以自主调用所有的 Search、Edit、Run 工具。
- 它会主动规划任务、修改代码、运行命令,甚至在出错时自我修复。
ASK 对话模式:智能问答模式,可以自主调用所有 Search 工具,但不能编辑文件或运行终端命令。
- 会根据你的问题,在代码库和网络中寻找答案,并以文本或代码块形式回复。
Manual 手动模式:
纯手动模式,几乎不自主调用任何工具。
它的行为完全由你的指令驱动,比如你用 @ 指令明确提供了哪个文件,它才会去读哪个文件。
它更加可控,适合执行精准、小范围的修改任务。
Chat 模式细节
当 Chat 建议更改代码时:
Review changes:在差异视图中查看建议的更改。
Apply:在Ask/Manual 模式下,使用应用按钮显式应用更改。
Accept/Reject(接受/拒绝):进行更改后,决定是保留还是放弃更改。
CheckPoints数据还原
有些情况,需要恢复到代码库的先前状态。
Cursor 通过在发出的每个请求以及每次 AI 更改的代码库时自动创建代码库的检查点(CheckPoints)来帮助解决这个问题。
- 类似于 Git 版本管理中的回滚操作。
单击上一个请求的输入框中显示的
Restore Checkpoint
按钮。注意:是恢复到本次对话之前的状态,不是本次对话产生的状态。
历史和新建会话
可以通过 Chat 中的
Show history
图标按钮或者使用快捷键Ctrl + Alt + '
开启新任务、避免对话混乱、保留特定记录或解决误操作时,需要在 Cursor 的 Chat 新建会话。
内联智能修改
内联智能修改(快捷键:
Ctrl + K
)功能是直接在编辑器窗口中生成新代码或编辑现有代码,适合精准修改代码内容。在 Cursor 中,将按
Ctrl + K
时出现的弹窗称为 Prompt Bar。它的工作原理类似于在指定代码文件中的 Chat 功能,可以在代码文件中指定区域输入,或使用 @ 引用其他上下文。
Rules规则
Rules 是给 Cursor AI 功能(规则适用于 Chat 和内联智能修改)生成的代码结果添加规则和限制。
让 AI 生成的代码贴合团队规范,减少人工二次修改成本。
- 约束代码风格,如强制用驼峰命名、要求函数必须写注释。
- 限定技术选型,如禁止使用某老旧库、优先用项目指定工具类。
- 指定核心参数,如提前设置连接数据库的地址和账号密码等。
Rule主要的配置方案有两种:
维度 | 项目规则(Project Rules) | 用户规则(User Rules) |
---|---|---|
作用范围 | 仅对当前项目生效,团队成员共享相同规则 | 对所有项目生效,个人专属配置 |
存储位置 | 项目根目录下的 .cursor/rules/随意.mdc 文件 |
用户配置目录(如 ~/.cursor/rules ) |
同步方式 | 随项目代码提交到版本库(如 Git),团队共享 | 仅本地生效,不随项目同步 |
适用场景 | 统一团队编码规范(如函数注释格式、依赖版本) | 个人习惯(如快捷键、AI 响应风格) |
注意:项目规则和用户规则同时存在并且规则冲突,项目规则优先级更高。
项目规则配置
项目下创建规则文件:
可通过如下两种方式进行创建:
- 手动创建规则文件:
项目/.cursor/rules/随意命名.mdc
- 使用快捷命令方式创建:
- 使用
Ctrl + Shift + P
唤起命令面板,然后输入New Cursor Rule,输入规则文件名,进行创建
编写项目规则文件:
---
description: "团队前端项目规范"
priority: 1000
---
# 代码风格
1. 函数必须包含 JSDoc 注释
2. 禁止使用 `var`, 统一用 `const`/`let`
3. 函数命名必须添加 code_ 前缀,例如:code_login
# 依赖管理
- 优先使用项目内已有的工具函数(如 `utils/request`)
- 禁止引入低版本的 lodash(<4.0.0)
@符号
在 Cursor 的 Chat 和内联智能修改功能中可以使用 @ 符号中引用代码、文件、文档和其他上下文的指南。
直接更具体的指定上下文环境。
以下是所有可用 @ 符号的列表:
@Files - 引用项目中的特定文件
@Folders - 引用整个文件夹以获得更广泛的上下文
@Code - 引用代码库中的特定代码片段或符号
@Docs - 访问文档和指南
@Git - 访问 Git 历史记录和更改
@Past Chats - 使用汇总的 Composer 会话
@Rules - 使用规则
@Terminals - 使用终端
@Lint Errors - 引用 Lint 错误(仅限 Chat)
@Web- 参考外部 Web 资源和文档
@Docs 作用说明
@Docs
将 Cursor 连接到来自常用工具和框架的官方文档,当需要以下内容的最新权威信息时,请使用它。
@Docs文档配置:
可以通过
Cursor Settings > Indexing & Docs
来进行文档索引配置。
点击 Add Doc 输入文档地址,如添加 MyBatis-Plus 官网地址: