Cursor

月伴飞鱼 2025-07-28 23:00:47
AI相关 > AI工具
支付宝打赏 微信打赏

如果文章对你有帮助,欢迎点击上方按钮打赏作者!

Cursor 是一款功能强大的 AI 优先代码编辑器,可增强开发工作流程。

主要提供三个核心方向:

深度集成 AI 模型

不是简单地接入模型,而是让 AI 充当了编译器的核心交互方式。

  • 支持代码块对话、项目级对话、模型自由选择。

强上下文理解能力

可以自动识别项目文件、代码块、错误信息等等,提供更直观准确的 AI 修改能力。

对话式开发体验

仅需用自然语言沟通,Cursor 就会根据指令完成布置的任务,使用者可以轻松扮演产品经理,让 Cursor 理解你的命令自行工作。

官网:https://cursor.com/

Cursor AI 配置

在 Cursor 中可通过页面右上角的设置按钮(齿轮图标)或者使用快捷键 Ctrl + Shift + J 打开 AI 设置。

Cursor 编辑器配置

使用快捷键 Ctrl + Shift + P 打开控制面板,输入 Preferences: Open Settings (UI)

配置 Java 语言环境

自动读取情况:

如果在系统环境变量中正确配置了 JAVA_HOMEMAVEN_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 官网地址:

https://baomidou.com/introduce/

支付宝打赏 微信打赏

如果文章对你有帮助,欢迎点击上方按钮打赏作者!