1. Cursor介绍
1.1 什么是Cursor
Cursor是一款AI优先(AI-First)的智能代码编辑器,它基于成熟的Visual Studio Code架构深度优化,将大型语言模型(LLM)原生集成到编辑器的每一个交互环节。与传统IDE或“编辑器+AI插件”模式不同,Cursor从底层设计就围绕AI能力构建,旨在成为开发者的智能结对编程伙伴,而不仅仅是代码书写工具。
技术架构与定位
● 基于VS Code内核:完全兼容VS Code的插件生态、快捷键和用户界面,确保开发者零成本迁移。
● AI原生集成:AI能力不是附加功能,而是编辑器的核心引擎,支持对整个代码库的语义理解和跨文件智能操作。
● 多模型支持:可在OpenAI、Anthropic、Gemini、xAI及Cursor自有模型间灵活切换,为不同任务选择最佳模型
1.2 核心优势
- 项目级上下文理解能力
Cursor默认对整个项目代码库进行索引和嵌入(Embedding),建立全局语义关联。这意味着:
● 毫秒级全库扫描:当询问“这个接口在哪里被调用?”时,Cursor能瞬间给出精准答案。
● 跨文件关联推理:AI能理解模块间的依赖关系,进行智能重构和修改。
● 自动上下文注入:提问时自动关联相关文件,无需手动提供背景信息。 - 四模式对话式编程体验
Cursor提供四种精心设计的AI交互模式,每种模式针对不同场景优化权限和工作流:
模式 适用场景
Agent模式 复杂功能开发、重构、修复Bug
Plan模式 需要规划的复杂功能
Debug模式 棘手Bug、回归问题
Ask模式 学习、探索、理解代码
模式选择策略:不确定时从低权限开始(Ask)→中权限(Plan)→高权限(Agent),确保安全可控。 - 智能编辑与自动化工作流
● Composer 2突破:采用“自我总结”强化学习方法,在处理长任务时主动暂停、总结关键信息并压缩上下文,将token用量降至传统方法的1/5。
● 云端并行智能体:Agent在云端虚拟机中自主运行,不占用本地资源,支持同时运行10-20个任务。
● 成本优势显著:Composer 2标准版定价为每百万输入token 0.50美元、输出2.50美元,相比前代降幅高达86%。 - 企业级安全与隐私
● 隐私保护模式:支持零数据存储的本地处理选项。
● 安全审查自动化:内部部署的安全审查Agent在每次代码推送时自动触发。
● 合规性支持:满足企业级数据安全和合规要求。
2. 安装与配置
2.1 安装
cursor直接在官网下载安装即可,并且注册账号,在第一次打开cursor时输入账号信息即可。
cursor官网:
https://www.cursor.com/
注册成功后,打开cursor一般会有四个区域
也可以点击右上角设置看下:
可以有各种设置,后面慢慢探索。先看下Plan&Usage
新注册的我有30天免费使用额度。
cursor也内置了很多模型:
可以配置自己的API Key使用。
2.2设置中文
先下载中文包
搜索“中文”,点击install。
然后配置:
按下 Ctrl + Shift + P (Mac 是Command + Shift + P)
输入 "language"→ 选择 "Configure Display Language"→ 选择 “中文(简体)”
然后重启即可。
2.3快捷键
在设置里找到Keyboard Shortcuts
打开可以看到所有的快捷键
一些常用的如下:
Tab 接受AI补全
Esc 拒绝补全
Ctrl/Cmd + L 打开关闭AI工作区
Ctrl/Cmd + I 打开Composer
Ctrl/Cmd + J 打开关闭终端
Ctrl/Cmd + / 在AI聊天框中切换AI模型
Ctrl/Cmd +K 编辑代码
Ctrl/Cmd + → 生成代码后,逐字接受补全
Ctrl/Cmd + Backspace 拒绝已应用的修改
Ctrl/Cmd + Shift + J 打开设置面板
Ctrl/Cmd + Shift + P 命令面板
Ctrl/Cmd + . 切换聊天模式
Alt/Option + Enter 快速问答
2.4 插件扩展
Cursor完全兼容VS Code扩展市场,同时提供专属AI扩展
如何打开扩展面板
- 快捷键:Ctrl+Shift+X
- 侧边栏图标:点击活动栏最下方的方块图标
- 命令面板:Ctrl+Shift+P→ 输入"扩展"
一些插件推荐: - configure display language:中文支持
- Python:python开发智能感知、调试、测试
- Java:Java开发支持
- markdownlint:支持markdown文档的阅读编辑
- Git Graph:git分支管理工具和可视化
- Extension Pack for Java:Java开发基础套件,包含语言支持、调试、Maven等核心功能,提供代码补全、重构工具
- Debugger for Java:支持断点调试、变量监控、表达式求值,兼容主流框架(Spring、Jakarta EE)
- Maven for Java:集成 Maven 依赖管理,支持 pom.xml 可视化编辑、生命周期命令执行
- mybatis jump to mapper xml:在 MyBatis 的 Java Mapper 接口与 XML 映射文件之间快速跳转,解决多文件无法关联跳转的痛点
3. 核心功能
3.1 代码自动补全
cursor可以根据你的文件名,你的注释,甚至你的类名函数名,以及你的上一行代码,来联想你下面要写的代码,进行代码补全,我们只需要tab接受即可。
如下根据文件名预测了函数名:
如下,根据上面的代码知道我在写快排,自动补充下一行代码:
3.2 AI对话项目开发
我们也可以直接通过右侧的AI对话框,输入我们的指令,让它帮我们完成想要完成的功能。
下面以一个贪吃蛇游戏为例。如下,我让它帮我写一个贪吃蛇的游戏页面:
设计到cd的命令行,它会停留等待我们是否执行,点击run:
左侧文件时它帮我们生成的文件,右侧是它生个思考和项目完成的过程,当然中间有些指令需要我们手动点击run或确认。最后也是完成了贪吃蛇游戏。
在现有项目基础上,我们还可以继续让他做一些优化,如,让蛇的速度慢一点,蛇的头部形状改为圆形:
3.3 四种对话模式
Cursor提供四种精心设计的AI交互模式,每种模式针对不同场景优化权限和工作流。
Cursor提供四种精心设计的AI交互模式,每种模式针对不同场景优化权限和工作流:
| 模式 | 适用场景 | 核心能力 | 权限级别 |
|---|---|---|---|
| Agent模式 | 复杂功能开发、重构、修复Bug | 自主探索、多文件编辑、运行命令、修复错误 | 高权限(可自主修改代码) |
| Plan模式 | 需要规划的复杂功能 | 执行前创建详细计划,提出澄清性问题,生成可审阅方案 | 中权限(需确认后执行) |
| Debug模式 | 棘手Bug、回归问题 | 生成假设、日志埋点、运行时分析、结合调试服务器 | 高权限(可插入日志和修复) |
| Ask模式 | 学习、探索、理解代码 | 只读探索,搜索代码库并提供答案,不修改代码 | 低权限(只读,安全探索) |
模式选择策略:不确定时从低权限开始(Ask)→中权限(Plan)→高权限(Agent),确保安全可控。
下面以Plan模式为例演示一下。
如下,修改需求:现在我想把对贪吃蛇吃的东西却分不同形状,分数也不同,同时贪吃蛇体型要随着吃的东西慢慢变大。
这时候它会提出一些澄清性问题,以明确具体的需求。
食物我选择B方案,体型增长我选择了A方案,然后点击continue。
这时候它会列出详细的计划,点击build,执行计划。
执行完之后,右下角会有选项,我们可以选择撤销修改,接受全部,review来查看所有的修改。
我们也可以直接让他帮我们启动项目:
4. 高级功能
4.1 @ 符号
@符号是一个强大的上下文引用工具,它允许你在与AI对话时直接引用项目中的文件、函数、类或代码片段,为AI提供精确的上下文信息,从而获得更准确、更相关的回答。
具体可以@哪些东西,如下
- Files & Folders(文件夹+文件图标)
项目管理核心入口,用于浏览、创建、删除、重命名项目内的“文件和文件夹”,是代码文件、资源文件的“目录管理器”。 - Docs(书本图标)
文档中心,一般关联三类内容:
● 项目内置文档(比如团队协作的README、API说明);
● 工具自身的帮助文档(比如该软件的操作指南);
● 第三方技术文档(若工具支持一键唤起MDN、官方SDK文档等)。 - Terminals(终端图标)
功能:命令行终端,在工具内直接打开命令行界面(如终端/Terminal),用于执行代码编译、脚本运行、环境配置(比如npm installpython manage.py runserver等命令),是开发者“命令行操作”的快捷入口。 - Past Chats(对话气泡图标)
功能:历史对话记录,保存你与该工具(尤其是AI辅助功能)的“过往聊天”,方便回溯之前的提问、代码生成记录、问题解决方案等。 - Branch (Diff with Main)(分支图标 + “与主分支对比”)
功能:版本控制(Git分支)+ 差异对比:
● Branch表示当前处于哪个Git分支;
● (Diff with Main)表示可一键查看“当前分支”与“主分支(main)”的代码差异(谁改了哪、新增/删除了什么代码),是Git协作中“合并代码前检查冲突”“同步改动”的高效方式。 - Browser(地球图标)
功能:内置浏览器,在工具内直接打开网页(无需切出软件),常见场景:
● 快速访问技术博客、Stack Overflow等“即时查资料”;
● 打开项目关联的在线文档/部署地址(比如Vercel预览页、GitHub Pages)。
这些选项的设计逻辑,是把开发者日常高频操作(文件管理、终端、Git、文档、浏览器)聚合到侧边栏,减少切换工具的成本,让编码流程更流畅~ 如果是特定工具(比如Cursor、GitHub Copilot、VS Code插件等),功能细节会略有差异,但核心逻辑一致。
示例:使用“@file”让AI只看一个文件,如下,我直接输入@main.js,让后让他帮我统计有多少行代码:
如果你的改动只涉及一个文件,最好使用此功能,可以减少AI的上下文,减少token消耗,减少幻觉。
有个小技巧,可以直接拖动指定文件或文件夹完成@Files & Folders的功能。
4.2 rules
4.2.1 什么是rules
Cursor Rules 是一套持久化的AI行为控制指令系统,你可以把它理解为“给AI定制的系统提示词”。通过设置规则,你可以让Cursor的AI助手在分析、生成代码时自动遵循你的项目规范、编码风格和个人偏好,无需每次重复说明。
核心价值
● 一致性:确保AI生成的代码符合团队/项目规范
● 效率:减少重复提示和代码修改时间
● 可维护性:规则文件可版本控制,随项目一起管理
● 个性化:根据项目类型、技术栈定制AI行为
4.2.2 如何添加rules
可以在设置里添加rules
rules分为两种:全局规则(User Rule)和项目规则(Project Rule)。
如下,我添加一个web的Project Rule,
当然,我们也可以让Agent帮我们写,命令是 /create-rule:
创建完了如下:
他会在项目中生成 .cursor\rules 文件夹,然后生成对应的 .mdc 文件。
当然,如果我们有 .cursor\rules 文件夹后,也可以直接创建对应的 .mdc 文件即可。
还有一种方法是命令面板创建:按 Cmd/Ctrl + Shift + P打开命令面板,输入 “New Cursor Rule”。
4.2.3 rules四种规则
Cursor 支持四种规则类型:
- Always Apply(始终应用)
无论当前上下文如何,强制对所有聊天(Chat)和 cmd+K命令会话应用该规则。
适用场景:
● 全局通用配置:例如强制所有代码文件添加版权注释、统一的代码风格(如缩进、分号)或配色方案。
● 无条件生效的逻辑:无需根据文件类型或内容差异调整的行为,如所有文件禁止使用硬编码颜色(如 #ffffff)。
示例:在代码规范中要求所有函数必须添加 JSDoc 注释,且该规则始终生效,不因文件路径或用户指令变化而改变。 - Apply Intelligently(智能应用)
根据用户输入的自然语言描述或上下文,智能判断是否触发规则。
适用场景:
● 动态适配需求:当用户明确提及特定需求时触发规则,例如在请求中包含“需要兼容旧版本”时,自动应用向后兼容的代码转换逻辑。
● 减少冗余提示:避免对无关场景频繁弹出建议,仅当上下文相关时才介入。
示例:若用户在聊天中询问“如何优化数据库查询性能”,规则自动触发性能优化相关的代码建议;若讨论其他话题(如 UI 设计),则不触发。 - Apply to Specific Files(应用于特定文件)
仅当文件匹配预设的模式(如路径、文件名、正则表达式)时,才触发规则。
适用场景:
● 差异化文件配置:不同类型文件需遵循不同规范,例如:
○ 测试文件(*.test.js)强制添加测试覆盖率注释;
○ 配置文件(.env、config.json)禁止提交敏感信息,触发安全检查规则。
● 临时排除文件:在重构或迁移时,对特定目录的文件应用过渡性规则。
示例:在项目中,所有 src/components目录下的 Vue 组件文件需统一使用
4.2.4 规则文件(.mdc)详细语法
基本结构如下:
--- description: "规则描述 - 何时应用此规则" globs: ["*.js", "*.ts"] # 文件模式匹配 alwaysApply: false # 是否始终应用 --- # 规则标题 ## 编码规范 - 使用2个空格缩进 - 行尾不要有空格 - 使用单引号而不是双引号 ## 项目特定要求 - 所有API调用必须包含错误处理 - 组件必须包含单元测试 - 使用项目特定的工具函数库 ## 禁止事项 - 不要使用var声明变量 - 不要使用alert/confirm/prompt - 不要直接修改DOM还有一些高级功能:
- 文件引用(@file语法)
--- description: "TypeScript项目配置" globs: ["*.ts", "*.tsx"] --- # TypeScript开发规范 @file ./tsconfig.json # 引用TypeScript配置 @file ./eslintrc.js # 引用代码检查配置 @file ./api-guide.md # 引用API文档 - 严格遵守tsconfig.json中的配置 - 所有导出必须有类型定义 - 避免使用any类型- 多规则链式引用
# frontend-rules.mdc --- description: "前端通用规则" globs: ["*.js", "*.ts", "*.jsx", "*.tsx"] --- @file ./coding-style.mdc @file ./react-specific.mdc # 前端特定规则 - 使用ES6+语法 - 组件必须可复用- 条件规则
--- description: "测试文件特殊规则" globs: ["*.test.js", "*.spec.js", "**/__tests__/*.js"] --- # 测试文件规则 - 测试描述必须清晰 - 每个测试用例独立 - 使用describe/it结构总结
Cursor代表的“AI原生IDE”范式,正在重塑软件开发流程:从“人写代码”到“人定义规则、AI执行任务”,从“单兵作战”到“人机协同规模化协作”。随着云端并行智能体、多模态交互(图像/文档生成代码)等技术的演进,Cursor将持续降低编程门槛、提升创造上限。
Cursor还有很多功能这里没有介绍,后续有机会再进一步讲解一些其他玩法。
当然,还有其他的AI coding工具,比如claude code、codex等,后面还会一一学习怎么使用,让我们一起拥抱AI带来的爆炸式生产力提升。