文章目录
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: