Cursor基本使用教程

Cursor简介

Cursor 是一款由 Anysphere 公司开发的 AI 驱动代码编辑器,其主要功能包括:

  • 智能代码补全:Cursor 能预测下一个编辑操作,帮助快速完成代码。
  • 自然语言编辑:可以使用自然语言指令来编写或修改代码,简化开发过程。
  • 代码库理解:Cursor 能够理解整个代码库,提供相关建议和答案。
  • 隐私与安全:提供隐私模式,确保代码仅存储在本地,并已通过 SOC 2 认证。
  • 兼容性:支持导入个人喜爱的扩展、主题和快捷键,提供熟悉的开发环境。

一、Tab自动补全

Cursor Tab是Cursor编辑器原生的自动补全功能,它不仅能在光标处插入代码,还可根据上下文对现有代码进行多行编辑和修改。

Cursor Tab 可以:

  • 提供围绕光标的编辑建议,而不仅仅是插入额外的代码。
  • 同时修改多行代码。
  • 基于最近的更改和 linter 错误提出建议。

当 Cursor 仅添加额外文本时,补全建议会以灰色文本显示。如果建议修改现有代码,它将以差异弹窗的形式出现在当前行的右侧。

在这里插入图片描述
你可以通过按 Tab 键接受建议,按 Esc 键拒绝建议。要逐字接受建议,可以按 Ctrl/⌘ →。要拒绝建议,只需继续输入,或者使用 Escape 来取消/隐藏建议。
在这里插入图片描述

每次击键或光标移动时,Cursor 会尝试根据你最近的更改提出建议。然而,Cursor 并不总是显示建议;有时模型预测没有需要修改的地方。
Cursor 可以在当前行上方一行到下方两行之间进行修改。

二、Cmd + K 提示框功能

Cmd + K(在 Windows/Linux 为 Ctrl + K)允许在编辑器窗口中生成新代码或编辑现有代码。

在这里插入图片描述
编辑现有代码:
在这里插入图片描述

三、Cmd + L 聊天功能

在Cursor中,Cmd + L用于打开聊天窗口,可以帮助你迅速从代码编辑界面或其他视图切换到聊天窗口。

四、@ Symbols 快捷指令

在 Cursor 的 AI 输入框中,例如 Cmd K、聊天或终端的 Cmd K,你可以通过输入 @ 符号来使用功能。一个弹出菜单会显示建议列表,并根据你的输入自动筛选,只显示最相关的建议。
你可以使用上下箭头键在建议列表中选择,按 Enter 键选择一个建议。如果建议是一个类别,例如“Files”,那么建议列表会被筛选,只显示该类别中最相关的项目。
在这里插入图片描述

(一)@Files单文件引用

如果你在输入 @ 后继续输入,@Code 策略会显示你的文件搜索结果。

在这里插入图片描述
为了确保你引用的文件是正确的,Cursor 会显示文件路径的预览。当不同文件夹中有多个相同名称的文件时,这尤其有用。

对于 Cmd K,Cursor 还会根据内容长度不同,使用不同的文件引用方式。

  • auto:根据文件大小自动选择三种读取策略中的一种。

  • full file:使用整个文件作为上下文。

  • outline:Cursor 解析文件的大纲,并使用该信息作为上下文。

  • chunks:Cursor 将文件拆分为更小的块,并选择最相关的一块。
    在这里插入图片描述
    内容生成:
    在这里插入图片描述

(二)@Folders文件夹引用

注意:目前,@Folders 仅在 Cursor Chat 中支持。

Cursor 支持将整个文件夹作为上下文进行引用。@Folders 对于需要提供大量上下文的长对话特别有用,帮助向 AI 提供更多信息。

在这里插入图片描述

示例1:Code Review优化建议

在这里插入图片描述

示例2:项目生成(需要手动应用)

在这里插入图片描述

示例3:项目单元测试生成

在这里插入图片描述
应用时直接修改到具体文件:

在这里插入图片描述

(三)@Code代码块引用

类似于 @Files 符号,Cursor 将显示代码内容的预览,以便您验证引用的代码是否正确。

在这里插入图片描述

当然,另一种更简便的方式就是选中某一个代码块,输入快捷键Ctrl/⌘ Shift L或Ctrl/⌘ Shift K,这会将选定的代码片段添加到聊天输入框或当前激活的 Cmd K 提示栏中。

(四)@Docs快速访问和查看文档

Cursor 配备了一套第三方文档,这些文档已经被爬取、索引并准备好作为上下文使用。可以通过使用 @Docs 符号来访问它们。

在这里插入图片描述
如果你想看的文档不在里面,可以选择 Add new doc添加:
在这里插入图片描述
应用:
在这里插入图片描述

(五)@Git扫描差异与审查

注意:目前,@Git 仅在 Cursor Chat 中支持。

在 Cursor 的 Chat 中,你可以使用 @Git 将 git commits, diffs, or pull请求添加到提示中。
在这里插入图片描述
@Git 的一个常见用例是让 Cursor 的 AI 扫描差异,并查找可能由差异引起的 bug 或问题。
在这里插入图片描述
也可以使用 @Diff of Working State 根据当前的差异生成提交信息。
在这里插入图片描述

(六)@Codebase项目中查找

在Cursor中,@Codebase是一个命令,用于帮助你访问和展示与当前项目代码库相关的信息。通过@Codebase,你可以快速查看项目中的文件、目录、代码结构等,甚至直接操作和浏览代码库中的内容。

通过 @Codebase,Cursor Chat 会执行以下步骤,直到找到最重要的代码片段作为上下文:

  • Gathering(收集):扫描你的代码库,寻找重要的文件或代码块。
  • Reranking(重新排序):根据与查询的相关性重新排序上下文项。
  • Reasoning(推理):思考如何使用这些上下文来形成计划。
  • Generating(生成):根据上下文生成回应。

在这里插入图片描述

另一种提交高级代码库查询的方法是点击右下角的codebase。
在这里插入图片描述

(七)@Web网络搜索

使用 @Web,Cursor 会根据您提供的查询和上下文构建一个搜索请求,并在网络上搜索相关信息以补充上下文。这非常实用,可以让 Cursor 获取最新的在线信息,或者快速抓取多个网站的信息,在几秒钟内找到最佳答案,而无需用户手动搜索。
在这里插入图片描述

(八)@Definitions查找定义

注意:目前,@Definitions 仅在 Cmd + K 中支持。

用于快速访问和查看代码中某个函数、变量、类或其他标识符的定义。它能够帮助你快速定位和理解代码的结构,在大型代码库中查找某个特定部分时比较有用。

在这里插入图片描述

五、自定义指令

你可以通过修改 Cursor 设置中的AI规则部分(路径为:Cursor Settings > General > Rules for AI)来添加自定义指令,这个自定义指令将包含在 Cursor Chat 和 Ctrl/⌘ K 等功能中。
在这里插入图片描述

.cursorrules

对于项目特定的指令,你可以将指令包含在项目根目录下的.cursorrules文件中。
与“AI规则”部分相同,.cursorrules文件中的指令将用于 Cursor Chat 和 Ctrl/⌘ K 等功能。
你可以在这里输入你想要的规则生成对应.cursorrules文件:https://cursorrules.agnt.one/chat

在这里插入图片描述

配置前
在这里插入图片描述
配置后:

在这里插入图片描述若.cursorrules不生效,可以重启Cursor编辑器试试。

六、生成git commit信息

生成的提交信息将基于你暂存的文件的更改以及你仓库的 git 历史记录。这意味着 AI 会分析你当前的更改和之前的提交信息,以生成一个上下文相关的提交信息。

Cursor 会从你的提交历史中学习,这意味着如果你使用像Conventional Commits[1]这样的约定,生成的提交信息将遵循相同的模式。

在这里插入图片描述

当然,你也可以配置快捷键。使用快捷键 ⌘RS 或 ⌘⇧P并搜索 “Open Keyboard Shortcuts (JSON)”。在该文件中添加以下内容,以将快捷键绑定到 ⌘M:

在这里插入图片描述

七、Notepads

Notepads是 Cursor 中强大的上下文共享工具,它们弥合了编写器和聊天交互之间的差距。可以将它们视为增强型参考文档,不仅超越了.cursorrules的功能,还允许你为开发工作流程创建可重复使用的上下文。

在这里插入图片描述
Notepads是用于收集想法、规则和文档的工具,其功能包括:

  • 在开发环境的不同部分之间共享
  • 使用@ 语法引用
  • 支持文件附件以增强功能
  • 作为动态模板,用于各种开发场景

常见使用场景

动态模板生成

创建常见代码模式的模板
存储项目特定的脚手架规则
在团队中保持一致的代码结构

架构文档

前端规范
后端设计模式
数据模型文档
系统架构指南
开发指南

编码标准

项目特定规则
最佳实践
团队约定

在这里插入图片描述

八、Composer

Composer是你编辑器中的 AI 编码助手。它可以帮助你探索代码、编写新功能以及修改现有代码,而无需离开当前的工作流程。

  • 使用⌘I打开 Composer
  • 使用⌘N创建一个新的 Composer

九、Chat 与 Composer 的区别

Chat 功能

直接对话式交互:类似聊天界面的交互方式,适合问答、咨询和快速解决问题,可以进行连续的上下文对话即时响应
针对具体问题提供快速解答:代码问题的快速诊断、Bug 修复建议使用场景、代码解释和理解
快速获取建议:调试帮助、简单代码生成

Composer 功能

结构化编辑:更专注于代码生成和编辑,提供更完整的编辑环境,支持多步骤的代码创建
高级功能:文件和项目级别的代码生成、复杂功能的实现、代码重构、完整文件的创建
使用场景:新功能开发、复杂代码生成、代码重构、完整组件创建

核心区别

交互方式
Chat:对话式、问答式
Composer:编辑器式、结构化

功能范围

Chat:快速、简单、即时
Composer:完整、复杂、系统

使用定位

Chat:解决问题和获取建议
Composer:创建和编辑代码

十、Bug Fixer

Cursor 的 Bug Finder 是一个智能代码分析工具,它能够实时检测代码中的潜在问题(如语法错误、逻辑漏洞、性能隐患等),并提供详细的修复建议,帮助开发者提前发现和解决问题。

在这里插入图片描述

它按点击收费(基于代码变更量),检查当前修改的代码:
在这里插入图片描述

它支持直接Fix in Composer:
在这里插入图片描述

参考