目录

一、前言

二、Cursor 介绍

2.1 Cursor 是什么

2.2 Cursor 核心特性

2.3 Cursor与传统IDE区别

2.4 Cursor与传统IDE核心差异总结

三、Cursor 进阶高级技巧案例使用

3.1 TAB 使用

3.1.1 代码/注释自动补全

3.1.2 TAB 键深度使用

3.2 Cursor 内联智能使用

3.2.1 什么是内联智能

3.2.2 内联智能核心特点

3.2.3 内联智能技术实现要点

3.2.4 内联智能案例场景使用

3.2.4.1 代码补全

3.2.4.2 生成注释

3.3 Cursor 精准上下文使用

3.3.1 什么是Cursor 的精准上下文

3.3.2 精准上下文@命令汇聚

3.3.3 使用案例

3.3.3.1 文件引用

3.3.3.2 web 链接引用

3.4 Cursor Rules 规则配置

3.4.1 什么是 Cursor Rules

3.4.2 Cursor 规则文件作用

3.4.3 Cursor Rules 分级与存放位置

3.4.4 创建规则文件

3.4.5 规则应用

3.4.6 规则文件使用示例

3.4.7 规则文件如何编写

3.4.8 使用技巧补充

3.5 Cursor 对接Skills

3.5.1 对接入口

四、写在文末


一、前言

在过去的很长一段时间里,Cursor 被誉为最全能的 AI 工具,它不仅是一个编程 Agent,更是一个几乎可以替换掉任何对话工具的全能 AI。Cursor 的出现,让很多软件工程师大开眼界,从而打开了一扇从传统编程进入到AI编程的新时代,可以说,只要你能想到的场景,Cursor 都能帮你自动化完成。借助Cursor ,不仅可以大大提升编程效率,而且对着技术的发展,Cursor 的功能也越来越完善,不仅可以做AI编程,在更多的领域都展示出了强大的能力,本篇将详细介绍Cursor 的一些进阶高级使用技巧。

二、Cursor 介绍

2.1 Cursor 是什么

Cursor是一个类VSCode的智能编程IDE,集成了GPT-4、Claude3.5等先进大语言模型(LLM),本质上是一个内置AI助手的VSCode。它不仅支持自然语言编程,还提供从代码编写、调试、重构到部署的智能辅助。你可以像和人交流一样与AI协作,大幅提升开发效率和代码质量。官网:https://cursor.com/

2.2 Cursor 核心特性

Cursor 主要包括如下核心特点:

  • AI原生设计:

    • 从底层架构就融入了AI能力,而非后期添加的插件智能代码生成:通过自然语言描述快速生成代码片段

  • 上下文感知:

    • 深度理解项目结构和代码关系

  • 实时协助:

    • 在编程过程中提供即时的建议和优化

  • 多模型支持:

    • 集成了多种先进的大语言模型

2.3 Cursor与传统IDE区别

Cursor与传统IDE主要有下面的区别:

功能特性

传统IDE

Cursor

代码补全

基于语法分析和已有代码的静态补全

AI驱动的智能补全,理解上下文和意图

代码生成

依靠预设模板和代码片段

通过自然语言描述生成完整代码逻辑

问题解决

需要手动查找文档、Stack Overflow等

内置AI助手,即时解答编程问题

代码理解

提供语法高亮和基础结构分析

深度理解代码逻辑,提供详细解释

重构优化

手动操作,依赖开发者经验

AI智能分析并建议最佳重构方案

学习支持

需要外部资料和文档

内置技术知识,实时学习辅导

错误处理

显示编译错误和基础语法检查

预测潜在问题,提供修复建议和解释

2.4 Cursor与传统IDE核心差异总结

与传统的IDE相比,具有如下的核心差异

对比维度

传统IDE

Cursor

交互方式

基于菜单、快捷键的工具操作

自然语言对话+传统操作

学习曲线

需要记忆大量快捷键和功能位置

通过对话快速上手,降低学习门槛

开发效率

依赖开发者经验和熟练度

AI辅助显著提升编码速度

代码质量

主要依靠开发者技能水平

AI持续提供最佳实践建议

知识获取

需要主动搜索和学习

被动接收AI推荐和解释

问题诊断

基于错误信息手动排查

AI分析问题根源并提供解决方案

创新能力

受限于开发者知识范围

AI提供多样化解决思路

适用人群

需要一定编程基础

适合各个水平的开发者

三、Cursor 进阶高级技巧案例使用

接下来通过实际案例详细介绍下在Cursor 中的一些进阶高级使用技巧。

3.1 TAB 使用

Cursor Tab是我们本地的自动补全功能。它是一个更强大的Copilot,能够建议整个差异,并具有特别好的记忆。在光标周围建议编辑,而不仅仅是插入额外的代码。同时修改多行。根据您最近的更改和linter 错误提出建议。它的作用很多,下面分别介绍。

3.1.1 代码/注释自动补全

我们使用ctrl+K给Ai agent命令,让其生成一段可以测试 Tab按键的python代码,当我将首行注释时,python代码由于无法识别tk是什么而产生报错(可以看到第一行文字颜色稍浅,是tab功能的提示输入),让我们尝试将第一段删除,并敲击键盘上的tab键进行使用。同时,在编写程序时,Cursor有时候也会帮我们自动注释,这时敲击TAB可以注释。

在上面的图中,我写了几个注释,在某个注释的后面,只需要按下 TAB键,Cursor 将自动为我生成符合注释要求的代码,同时会发现,第一个注释后面的代码生成之后,TAB键自动跳转到下一个位置去了

Tab自动补全后,先点击右上角三角小箭头,是启动功能,然后会生成我们代码的结果小窗口(测试Tab功能的程序,并能够进行直接测试)

可以点击运行在终端很方便的看效果

3.1.2 TAB 键深度使用

Tab: 按Tab键接受整个建议

Esc: 按Esc键拒绝整个建议

Ctrl+一>: 逐字接受建议

Tab会预测开发者接下来可能需要编辑的位置,并在接受当前修改后自动建议跳转到下一个相关位置。只需再次按下Tab键即可快速跳转,极大减少了鼠标操作和手动寻找的时间。在某些项目中,当我们有多个文件时,Tab也会帮我们预测下个文件功能的位置,敲击Tab进行文件的跳转。

在第三段注释代码刚刚生成并接受之后,TAB 键自动预测并跳转到了下一个注释的位置

3.2 Cursor 内联智能使用

3.2.1 什么是内联智能

内联智能,顾名思义,就是指智能功能直接嵌入在代码编辑器的编辑界面内,与代码内容无缝结合,实时显示和交互,帮助开发者在编写代码的“行内”获得智能辅助。

换句话说,内联智能就是把 AI 的能力“贴近代码”,在开发者写代码时直接在代码旁边、行内或特定位置给出提示、补全、注释、建议等信息,无需跳转窗口或打开其他面板。

3.2.2 内联智能核心特点

内联智能具有如下核心特点

特点

说明

实时性

随代码输入即时触发,反馈快速

上下文感知

基于当前文件乃至整个项目的代码上下文进行智能推断

无缝集成

直接显示在代码编辑区域,不打断开发者思路

交互便捷

集成代码补全、错误提示、重构建议、文档注释等多种智能功能

多功能融合

集成代码补全、错误提示、重构建议、文档注释等多种智能功能

3.2.3 内联智能技术实现要点

特点

说明

上下文感知语义理解

结合语法树(AST)、类型信息、代码调用关系进行深度语义解析

模型推理与缓存机制

采用大模型推理辅助决策,并缓存历史结果减少延迟

编辑器插件集成

通过 VSCode、IntelliJ 等编辑器扩展实现 UI 层和交互层支持

事件驱动机制

监听代码输入、保存、切换文件等事件触发智能响应

异步反馈与并发处理

保证智能提示不会阻塞编辑体验,异步加载和更新内容

3.2.4 内联智能案例场景使用

内联智能在日常编程开发中有比较多的使用场景,具体来说:

  • 智能代码补全

    • 在开发者输入代码时,内联智能能结合上下文和历史记录,推荐最合适的代码片段或函数调用

    • 例如输入变量名、函数名时,自动提示匹配项并支持快速选取

  • 代码错误和警告提示

    • 直接在代码行内或旁边标注语法错误、潜在逻辑漏洞

    • 例如拼写错误、类型不匹配、变量未定义等即时警告

  • 重构建议和代码优化

    • 在相关代码处提示重构可能性,比如函数拆分、命名优化、循环简化

    • 鼓励代码规范化、模块化,提升可维护性

  • 生成文档注释

    • 在函数定义或类上方内联提示缺少注释,提供自动生成选项

    • 帮助快速补全符合规范的 API 文档

  • 单元测试建议

    • 代码变更时,内联提示可能需要新增或修改的测试用例

    • 支持快速跳转生成测试代码模板

下面通过几个实际案例演示一下。

3.2.4.1 代码补全

如下,当我们在一个文件中写下一段注释,然后按下TAB键的时候,Cursor 自动理解注释的含义,然后生成代码

按下TAB键之后,代码就自动添加在注释下方

也可以通过 Ctrl + K 的快捷键调出局部对话框,如下,在小窗口中给出提示词:

然后点击小箭头确认,然后就在下方快速生成了代码

3.2.4.2 生成注释

选中某个方法块,生成代码的注释

生成之后,按照提示,选中即可

3.3 Cursor 精准上下文使用

3.3.1 什么是Cursor 的精准上下文

Cursor的“精准上下文”核心就是使用 @ 符号系统。你可以把它理解为给AI的“精确引用”,让AI不再靠猜,而是直接定位到你指定的代码、文件,甚至网络文档,从而实现手术刀般的精准操作。可以看到,在对话框中输入@之后,下拉很多选项可以使用,在日常编程开发中,可以借助这些选项辅助完成很多开发、问题排查、数据分析等工作。

3.3.2 精准上下文@命令汇聚

下面我将核心的 @ 命令整理成了下面的速查表:

命令

作用

典型场景举例

@Files

引用一个或多个特定文件

“参照 @src/components/Button.tsx 的写法,新建一个 Link.tsx 组件。”

@Folders

引用整个文件夹,提供更广泛的上下文

“检查 @src/api/v1 这个文件夹下所有接口,看哪里缺少身份验证中间件。”

@Code / @Symbols

引用代码中的特定函数、类或变量

“重构 @useUserData 这个 Hook,用 React Query 替代本地状态管理。”

@Docs

为AI提供外部文档知识,避免它“胡编乱造”

“根据 @React Router 的官方文档,帮我写一个需要身份验证的路由守卫。”

@Web

让AI进行实时在线搜索,获取最新信息

“帮我查一下 Node.js 最新的稳定版本是什么?@Web

@Git

引用Git提交历史或差异,用于审查代码或生成提交信息

“根据我暂存的更改,写一条提交信息。@Git

@Lint Errors

引用编辑器中所有的代码检查错误

“帮我修复 @Lint Errors 里列出的所有问题。”

@Codebase

让AI理解整个项目,回答全局性问题(主要用于聊天模式)

“这个项目里的用户认证流程是怎样的? @Codebase

使用技巧:这些 @ 命令可以组合使用,为AI提供更丰富的上下文。例如,你可以问:“参照 @Button.tsx 的样式,修复 @Lint Errors 中关于 Header.tsx 的问题。”

3.3.3 使用案例

接下来通过几个实际案例分享一下Cursor精准上下文的用法。

3.3.3.1 文件引用

通过@或者直接拖拽文件的方式

也可以通过@文件的方式,可以@某个具体的文件,也可以是某个文件夹,或者文档

3.3.3.2 web 链接引用

可以在Curosr 中直接引用外链文档,Curosr 可以读取外部链接文档信息,进行加载、分析、处理,比如,这里引用一个微信官方的对接文档,让Cursor 为我生成一个对接的流程梳理

稍作等待之后,Cursor 将对接的过程做了详细的整理并输出出来

@中其他的功能都可以参考上面的方式做一些尝试,使用起来大同小异

3.4 Cursor Rules 规则配置

3.4.1 什么是 Cursor Rules

Cursor Rules,中文翻译过来是 Cursor 规则。就是给Cursor制定一系列规则,约束AI生成的代码。

  • Cursor 的规则系统是让 AI 按照你的技术栈、代码规范和项目架构来生成代码的关键。通过配置 .cursor/rules/*.mdc 文件,你可以告诉 AI "你是谁"、"项目用什么技术"以及"代码该怎么写"

  • 当一条规则被触发后,规则中的内容会被附加到提示词中,为 AI 提供参考,无论是在自动补全、 代码生成、重构还是错误修复时都能遵循这些规范

3.4.2 Cursor 规则文件作用

规则文件具有下面的作用:

  • 指明项目所使用的技术栈(Vue 3, Element Plus, Pinia, TypeScript, Vite)

  • 明确项目约定(组件/文件命名、CSS 命名、导入顺序)

  • 避免误判:减少 Cursor 提供的错误补全或重复实现已有功能

  • 提升智能度:帮助 AI 生成符合项目风格、结构规范、命名约定的代

3.4.3 Cursor Rules 分级与存放位置

之前接触过Claude Code 的同学应该不陌生,Claude Code中的规则配置分全局和项目级别,在 Cursor 当中,也不例外,它支持两种级别的规则:

  • 全局规则(User Rules) :针对所有项目通用的规则

  • 项目规则(Project Rules) :存放于项目目录下的 .cursor/rules 中,只用于约束当前项目

规则文件放在项目根目录下的 .cursor/rules/ 文件夹中,使用 .mdc 格式

your-project/
├── .cursor/
│   └── rules/
│       ├── typescript.mdc      # TypeScript 规范
│       ├── components.mdc      # 组件规范
│       └── api.mdc             # API 规范
├── src/
└── ...

⚠️ 注意:旧的 .cursorrules 单文件方式已不再推荐,新项目请使用 .cursor/rules/ 多文件方式。

对上面的规则文件目录位置做一些补充说明:

  • 📁 路径固定:必须为 .cursor/rules/

  • 📄 扩展名固定:必须为 .mdc

  • ✅文件可以有多个,每个规则建议单独拆分主题编写,如 unocss-guidelines.mdc, project-structure.mdc, naming-conventions.mdc 等

3.4.4 创建规则文件

可以手动创建规则文件,也可以通过内置的命令创建,手动创建方式如下:

  • 说明:文件名可自定义,扩展名必须为 .mdc

# 第一步,创建规则文件的目录
mkdir -p .cursor/rules
#创建规则文件
touch .cursor/rules/project-guidelines.mdc

如果是自动创建,打开Cursor 的编辑器Chat窗口,输入 / 并选择弹出的 Generate Cursor Rules 选项,即可自动生成 .cursor/rules/ 目录及默认的规则文件

我们用第二种方式来尝试一下,按照上一步,选中了 / create-rule 之后,在后面输入下面的提示词

经过一会儿的等待后,Cursor 读懂了我制定模块的项目,为我生成了项目介绍文档,并且是mdc格式的

3.4.5 规则应用

规则文件创建出来后,进入规则文件,可以看到上面有个下拉框,提供了几个选项

这几个选项的含义如下:

  • Always:始终应用规则(想始终生效)

  • Auto Attached:当匹配 globs 模式的文件被引用时自动附加规则(想自动触发用)

  • Agent Requested:根据 AI 代理的判断决定是否应用规则,需要提供规则说明(想让 AI 自己决定是否用)

  • Manual:仅在提示中显式使用 @规则名 时附加规则。(想手动调用规则)

3.4.6 规则文件使用示例

首先让Cursor 读懂项目之后生成一个API 设计规则,然后基于这个规则编写接口,给出如下提示词:

读懂 gh-pda 模块的项目开发规范,然后生成一个API 接口设计规范,后续我就与你共同持续完善这个接口设计文档

最后Cursor 为我们生成了我指定模块的api接口设计规范

  • 实际使用时,还需要人工进行二次校对、完善这个文档

打开这份文档后,我选择了手动引用,然后在对话框那里可以看到已经可以看到上述创建成功的文件了

接下来,基于创建的API设计规则文件让Cursor 生成接口

通过过程输出日志可以看到,Cursor 参考了上述的接口设计规范文档,最终生成的接口完全符合预期的要求

3.4.7 规则文件如何编写

在上述案例操作中,演示了项目规则文件如何从0到1创建出来,事实上,如果你的项目已经比较成熟稳定,上面这种方式是最快捷的,如果你的项目还在规划、设计和成型中,可以手动编写,可以先制定API接口设计规范,后续再进行丰富完善即可,而规则文件内部的内容,网上有很多资料,首先文档格式必须为.mdc 结尾,本质就是

是 Markdown 文档,但具有特殊结构。以下以开源项目 vue3-element-admin 为例,给出适用于 Vue 3 + TypeScript 项目的推荐规则模板写法,可做参考:

# 项目基础说明 
- 本项目基于 Vue 3 + TypeScript + Element Plus + Pinia + Vite 搭建。 
- 采用组合式 API(`<script setup lang="ts">`)进行开发。 
- 状态管理使用 Pinia,模块化组织。 
- 路由使用 Vue Router,采用权限动态路由配置。 
- 接口请求统一封装在 `@/utils/request.ts` 中,使用 Axios。 
- 表格、表单页面基于 Element Plus 封装通用组件,提高复用性。 
# 组件和文件命名规范 
- 组件文件名使用 `PascalCase` 格式,例如:`UserTable.vue`, `LoginForm.vue` 
- 公共组件放置在 `src/components/` 下,业务组件可放在 `src/views/模块/components/` 中 
- 文件夹名和非组件 `.ts/.scss` 文件使用 `kebab-case` 格式,例如:`user-api.ts`, `login
form.scss` 
- 页面文件命名与路由保持一致,使用 `kebab-case`,例如:`user-list.vue`, `role-edit.vue` 
# 样式和 CSS 使用约定 
- **优先使用原子类:** 使用 UnoCSS 提供的原子类进行布局和样式,例如常见的 flex 布局(`flex 
justify-center items-center` 等)。样式语义明确,便于维护。 
- **常用组合提取为全局快捷方式:** 对于**频繁使用**的原子类组合,应在 `unocss.config.ts` 中 
通过 `shortcuts` 定义全局组合类。例如:将 `flex justify-center items-center` 定义为 
`flex-center`,这样可以在整个项目中复用。组合类命名应简洁且语义化,反映布局或功能意图。 
- **非常用组合使用局部类:** 对于特定组件中使用但不常见的、超过3个的原子类组合,应该在组件内使 
用局部CSS类(使用`<style scoped>`块),避免过多的全局组合污染全局命名空间。 
- **避免重复代码:** 不论是通过全局`shortcuts`还是局部CSS类,都应避免在多个地方重复编写相同 
的原子类列表,保持代码 DRY(Don't Repeat Yourself)原则。 
- **样式优先级:** 优先考虑 UnoCSS 解决方案(原子类或组合类),其次才是传统 CSS。当需要使用传 
统 CSS 时,遵循 BEM 命名规范,即 `block__element--modifier` 格式。 
# 导入顺序规范(保持统一结构) 
1. Vue 相关 API(如 `ref`, `computed`, `onMounted`) 
2. 第三方库(如 `element-plus`, `axios`) 
3. 工具函数(如 `@/utils/*`) 
4. 状态管理(如 `@/store/*`) 
5. 项目内部组件、模块(如 `@/components`, `@/views`) 
6. 样式文件 
# 开发注意事项 
- 使用 TypeScript,避免使用 `any`;
- 组件职责单一,保持结构清晰; 
- 所有组件必须使用组合式 API; 
- 适当添加注释,提升 AI 理解。

3.4.8 使用技巧补充

下面再结合实际经验补充一些常用的使用技巧

  • 拆分规则主题: 可以为不同模块分别写规则,比如 style-guidelines.mdc、project-structure.mdc、component-conventions.mdc,让 AI 更易查阅上下文

  • 越具体越好: 你越明确规则,Cursor 越能准确给出符合你期望的代码。避免废话和废规则: Focuson 可执行、可操作、可验证的规则。比如“命名要清晰”不如“类名采用 BEM 规范并用小写字母连接” 具体有效

  • 随项目迭代更新规则: 规则应当与代码保持同步更新,特别是引入新的库、工具、编码风格变更时

3.5 Cursor 对接Skills

Skills在日常的工作中使用非常频繁,Cursor 中对接Skills非常方便,下面简单做一些介绍。

3.5.1 对接入口

如下,通过聊天对话设置,在设置选项中有一个配置Skills的入口

如果你想添加新的skill进来,点击 +New 按钮,会自动跳转到一个新的对话框,这个意思是Cursor 可以按照你的需求描述创建一个skill并加载进去

  • 如果本地你已经提前创建或者拥有了一些skill,可以直接通过对话将其加载到cursor 中,比如这里面就是我本地安装的飞书相关的skill

接下来,我给一个飞书链接,让Cursor 借助飞书的skill读取文档信息,通过过程输出日志不难看出,中间调用了与飞书相关的skill

最终,按照预期要求将文档中的关键信息整理并输出了出来

四、写在文末

本文通过较大的篇幅详细介绍了Cursor 中一些进阶的高级使用技巧,Cursor的功能远不止于此,有兴趣的同学还可以在此基础上继续深入研究,本篇到此结束,感谢观看。

Logo

中国智能体开发者社区,聚焦智能体与大模型开发,提供前沿资讯、实用工具链、开源项目及行业案例。通过技术沙龙、开发者大赛等活动,促进经验交流与协作,助力开发者快速构建创新智能应用。

更多推荐