一文搞懂cursor

Daotin 于 2025-01-09 发布 编辑

背景

cursor断断续续也用了几个月了,tab功能确实用的很happy,还有claude加持的chat,不管是对代码进行提问,还是修改,都很舒服。

所以想进一步好好学习cursor的进阶使用,包括composor agent功能等,全面摸索一下。

功能

废话不多说,比如介绍什么是cursor,如何安装使用的就免了。

直接介绍常用的功能。

Tab 自动补全

这是用的最多的功能。

Cursor 和 GitHub Copilot 完成代码的最大区别在于:GitHub Copilot 可以在光标位置插入文本。它无法编辑光标周围的代码或删除文本。

Chat 对话(CTRL+L)

Cursor Chat 让您在代码库中提问或解决问题。

为了能够更好的解决问题,需要提供:

关于上下文:

@符号支持的功能:

#### @Files 引用文件。支持拖放的形式添加文件。

**注意:指定文件的话,Cursor中如果@ 某个代码文件,cursor会尽量完整读取(测试临界点2000行)

对于Cmd K 分块策略,Cursor 也根据内容长度以不同方式使用文件引用。有auto,full file,outline,chunks。

@Folders

将整个文件夹作为上下文引用。@Folders 在需要提供大量上下文时特别有用。

相当于@Files整个文件夹下的文件。

@Code

引用某个文件特定的代码片段。

@Docs

Cursor 附带了一套爬取、索引并准备好作为上下文使用的第三方文档。

如果没有,还可以自己添加自定义的文档链接。

使用案例:基于第三方文档进行搜索,使结果最准确。

@Git

使用 @Git 将 git 提交、差异或拉取请求添加到您的提示中。

使用场景:

@Codebase

从整个代码仓库查找上下文信息,遵循:

@Web

使用 @Web,Cursor 根据您提供的查询和上下文构建搜索查询,并在网络上搜索相关信息作为额外的上下文。这对于查找最新信息特别有用。

可以通过在 Cursor settings > Features > Chat 下启用“始终搜索网络”,使 Cursor 在每个查询中搜索网络。这相当于在每个查询中使用 @web

@Chat

此功能目前仅适用于 Cmd K。

用于将右侧当前聊天消息作为打开窗口的上下文。

使用场景:当希望将其应用于编辑或生成代码。

@Definitions

将所有附近的定义添加到Cmd K作为上下文。

比如:@https://your-link.com:在cursor响应之前,先访问链接。

使用场景:可以用来总结文章。

命令面板(CTRL+K)

在编辑器窗口中生成新代码或编辑现有代码。

Composor 作曲家(CTRL+I)

分为normal/Agent模式。

Normal(普通模式)

normal提供了代码探索和生成的核心功能:

Agent(代理模式)

每次生成代码时,Composer 都会创建一个检查点。可以通过单击该检查点附近restore返回到任何以前的版本。如果不喜欢当前的更改并想要恢复到较早的状态,这会很方便。

Composor与Chat聊天的比较:

简单来说,就是composor会比chat可以多文件增删改。

Cursor agent模式下,默认读一个代码文件的前250行,如果不够,偶尔会主动续读,增加250行;在部分要求明确的情况,Cursor会执行搜索,每次搜索结果最多为100行代码。

Cursor 规则

换句话说,Rules for AI 是针对所有项目的全局提示词,而cursorrules相当于每个项目的提示词配置。

关于cursorrules如何配置,可以参考:

参考文档