背景
cursor断断续续也用了几个月了,tab功能确实用的很happy,还有claude加持的chat,不管是对代码进行提问,还是修改,都很舒服。
所以想进一步好好学习cursor的进阶使用,包括composor agent功能等,全面摸索一下。
功能
废话不多说,比如介绍什么是cursor,如何安装使用的就免了。
直接介绍常用的功能。
Tab 自动补全
这是用的最多的功能。
Cursor 和 GitHub Copilot 完成代码的最大区别在于:GitHub Copilot 可以在光标位置插入文本。它无法编辑光标周围的代码或删除文本。
- 在光标周围建议编辑,而不仅仅是插入额外的代码。
- 同时修改多行。
Chat 对话(CTRL+L)
Cursor Chat 让您在代码库中提问或解决问题。
为了能够更好的解决问题,需要提供:
- 清晰的指令
- 足够的上下文Content
关于上下文:
- 默认情况下,Cursor Chat 包含
当前文件
作为上下文。 - 通过@符合,可以添加额外的上下文Content信息
@符号支持的功能:
#### @Files
引用文件。支持拖放的形式添加文件。
**注意:指定文件的话,Cursor中如果@ 某个代码文件,cursor会尽量完整读取(测试临界点2000行)
对于Cmd K 分块策略
,Cursor 也根据内容长度以不同方式使用文件引用。有auto,full file,outline,chunks。
- 自动
- 根据文件大小自动选择三种阅读策略之一
- 完整文件
- 整个文件作为上下文使用。
- 大纲
- Cursor 解析文件的大纲并使用该信息作为上下文。
- 块
- Cursor 将文件分成较小的块,并选择最相关的一个。
@Folders
将整个文件夹作为上下文引用。@Folders
在需要提供大量上下文时特别有用。
相当于@Files
整个文件夹下的文件。
@Code
引用某个文件特定的代码片段。
@Docs
Cursor 附带了一套爬取、索引并准备好作为上下文使用的第三方文档。
如果没有,还可以自己添加自定义的文档链接。
使用案例:基于第三方文档进行搜索,使结果最准确。
@Git
使用 @Git
将 git 提交、差异或拉取请求添加到您的提示中。
使用场景:
- 使用Cursor查找某一次提交可能存在的问题
- 使用
@diff of working state
生成本次提交commit
@Codebase
从整个代码仓库查找上下文信息,遵循:
- 收集:扫描您的代码库以寻找重要文件/代码块
- 重新排序:根据与查询的相关性重新排列上下文项
- 推理:思考使用上下文的计划
- 生成:提出响应
@Web
使用 @Web
,Cursor 根据您提供的查询和上下文构建搜索查询,并在网络上搜索相关信息作为额外的上下文。这对于查找最新信息特别有用。
可以通过在
Cursor settings
>Features
>Chat
下启用“始终搜索网络”,使 Cursor 在每个查询中搜索网络。这相当于在每个查询中使用@web
。
@Chat
此功能目前仅适用于 Cmd K。
用于将右侧当前聊天消息作为打开窗口的上下文。
使用场景:当希望将其应用于编辑或生成代码。
@Definitions
将所有附近的定义添加到Cmd K作为上下文。
@Link
比如:@https://your-link.com
:在cursor响应之前,先访问链接。
使用场景:可以用来总结文章。
命令面板(CTRL+K)
在编辑器窗口中生成新代码或编辑现有代码。
Composor 作曲家(CTRL+I)
分为normal/Agent模式。
Normal(普通模式)
normal提供了代码探索和生成的核心功能:
- 搜索您的代码库和文档
- 使用网络搜索
- 创建和写入文件
- 访问扩展
@
符号命令
Agent(代理模式)
- 功能特点:Agent 模式下,Cursor 扮演智能编程助手的角色,能够自主完成复杂的编程任务。它可以:
- 自动上下文理解:自动从代码库中提取相关上下文信息,主动分析项目结构和相关代码,理解用户需求。
- 多文件操作:同时处理多个文件的修改、创建或删除。
- 命令执行:直接在编辑器中运行终端命令,自动安装依赖或执行脚本。
- 任务规划与执行:根据用户的高层次指令,制定详细的实现方案,并逐步执行。
- 适用场景:适用于复杂的项目需求,如项目初始化、代码重构、错误诊断和修复等。Agent 模式能够处理涉及多个文件和步骤的任务,减少用户的手动干预,提高开发效率。
每次生成代码时,Composer 都会创建一个检查点。可以通过单击该检查点附近restore
返回到任何以前的版本。如果不喜欢当前的更改并想要恢复到较早的状态,这会很方便。
Composor与Chat聊天的比较:
- chat:询问有关您的代码的问题。为您的代码提供建议,然后您可以将其应用到您的代码中。询问有关您的代码的一些知识。
- Composer :给出一些更改代码的说明。在多文件中重构代码。在多文件中添加代码。(能够生成代码并创建文件和目录)
简单来说,就是composor会比chat可以多文件增删改。
Cursor agent模式下,默认读一个代码文件的前250行,如果不够,偶尔会主动续读,增加250行;在部分要求明确的情况,Cursor会执行搜索,每次搜索结果最多为100行代码。
Cursor 规则
- 全局规则:在 Cursor 设置中的 General > Rules for AI 下设置。
- 项目特定规则:在项目根目录的
.cursorrules
文件中定义。这些规则允许您根据自己的编码风格和项目需求定制 AI 的行为。
换句话说,Rules for AI 是针对所有项目的全局提示词,而cursorrules相当于每个项目的提示词配置。
关于cursorrules如何配置,可以参考:
- https://cursor.directory/
- https://cursorlist.com/
- https://github.com/PatrickJS/awesome-cursorrules