Cursor是什么?
cursor是由 Anysphere 这个实验室打造的代码编辑器,它集成了GPT4、Claude 3.5等先进LLM的类vscode的编译器,可以理解为在vscode中集成了AI辅助编程助手,从下图中的页面可以看出cursor的布局和vscode基本一致,并且cursor的使用操作也和vscode一致,包括extension下载、python编译器配置、远程服务器连接和settings等,如果你是资深vscode用户,那么恭喜你可以直接无缝衔接cursor。

Cursor 和 VSCode 的最大的不同点在于它内置了 AI 进行代码的协作,为此它对 VSCode 进行了诸多修改,这些修改使得它的体验比在 VSCode 上使用诸如 Github Copilot 一类的插件更加舒服。
Cursor新手入门
Cursor安装
Cursor 需要去它的官网上下载。下载完后需要注册才能使用,支持 Google 与 Github 账号登录。
官网下载地址:https://www.cursor.com/

在注册完成后,你会有一个专属账号,每个账号的模型调用次数是有限的,其中GPT4和Claude3.5的免费调用次数为500次,另外Cursor 采取的是订阅制。新用户可以试用两周的 Pro 订阅。而要订阅 Pro 的话,每个月需要支付 20 刀。

安装完后,Cursor 会在第一次启动时提示你是否要导入你的 VSCode 配置,导入完成后,你基本上就拥有了 AI 增强版的 VSCode 了,首次使用记得设置中文,操作步骤和VSCode一致:
点击最上面的框,输入>language,可以配置简体中文。

配置模型
Cursor内置了很多LLMs,包括最先进的GPT4s、Claude3.5s和openai最新发布的推理模型o1-preview和o1-mini,在右上角的设置中即可打开相应的模型进行辅助编程。

Cursor 键盘快捷键
通过这些基本的 Cursor 键盘快捷键和符号提高您的生产力。本速查表涵盖了 Cursor 的 AI 驱动功能的关键命令,包括 Cursor Tab、Cmd K、聊天、Composer 和 @ 符号。注意:Windows/Linux 上使用 Ctrl,macOS 上使用 ⌘(Command)。
Cursor Tab(AI 代码补全)
-
接受建议
Tab
-
拒绝建议
Esc
-
部分接受
Ctrl/⌘ + →
Cmd K(内联编辑)
-
打开 Cmd K
Ctrl/⌘ + K
-
应更改
Ctrl/⌘ + ↵
-
取消/删除更改
Ctrl/⌘ + ⌫
聊天界面
-
打开聊天
Ctrl/⌘ + L
-
将代码添加到聊天
Ctrl/⌘ + L
Composer
-
打开 Composer
Ctrl/⌘ + I
-
打开全屏 Composer
Ctrl/⌘ + Shift + I
@ 符号
-
引用文件
@filename
-
引用函数
@functionName
-
引用变量
@variableName
-
搜索代码库
@codebase query
-
搜索网络
@web query
通用
-
打开命令面板
Ctrl/⌘ + Shift + P
-
打开设置
Ctrl/⌘ + ,
-
切换侧边栏
Ctrl/⌘ + B
-
切换终端`Ctrl/⌘ + ``
-
新建文件
Ctrl/⌘ + N
-
保存文件
Ctrl/⌘ + S
Cursor 常用功能说明
Command K:
让您可以使用AI编辑和写代码。要编辑,只需选择一些代码,点击「Edit」,并描述代码应该如何改变。要生成全新的代码,只需在没有选择任何内容的情况下输入Command K。

Copilot++:
Cursor的原生自动完成功能。它是Copilot的一个更强大的版本,可以建议中间行的完成和整个差异。它使用了一个定制的模型,训练来预测代码库中的下一个编辑。

Chat:
让您可以与一个能看到您的代码库的AI进行交谈。聊天可以始终看到您当前的文件和光标,所以您可以问它一些问题,比如:「这里有错误吗?」。您可以使用Command+Shift+L或「@」将特定的代码块添加到上下文中。您可以使用Command+Enter与您的整个代码库进行聊天。

@ 符号:
可让您轻松地向 AI 显示代码。尝试在 Command+K 或聊天中键入「@」,以获取文件夹中所有文件和代码符号的下拉列表。您可以使用它来生成具有特定依赖项的代码(「使用与@ErrorPopup相同的样式」)或询问文件(「@inlineDiffService.ts做什么」)。

Codebase Answers:
让您可以向AI询问您的整个代码库的问题。要使用它们,请在聊天中输入Command+Enter或点击输入框中的「with codebase」按钮。您可以问一些问题,比如「撤销重做逻辑在哪里?」或「我们如何在客户端处理身份验证令牌?」。

Docs:
这个功能可以提高AI对第三方库的理解。要使用文档,请在聊天或Command K中输入@LibraryName。要让Cursor爬取自定义文档,请在Command K或聊天中输入「@Add」。您将指定爬取的起点和所有爬取的URL应该遵循的前缀。

Auto-Debug:
Auto-debug是一个用于在Cursor的终端中修复错误的代理。要使用它,请在终端错误后点击蓝色的「Auto-debug」按钮。点击后,AI将查看您的文件,并输入一个思考链来尝试解决问题。

Fix Lints:
Cursor帮助您快速修复lint错误。只需将鼠标悬停在任何lint错误上,然后点击出现的蓝色「Fix」按钮。一个AI回应将出现在聊天中。再也不用对着复杂的Typescript或Rust错误眯眼了!

@ 符号常见功能
为了更方便地向大语言模型提供上下文信息,Cursor 内设了不同地 @
注记,使用 @
注记能够方便地注入不同类型的上下文信息到你的对话里。
@
注记有一些是通用的,在所有对话窗口中都可以使用;有一些是特殊的,我会在提到时做补充说明。
注:事实上 Github Copilot 也有类似的功能,但是没 Cursor 齐全好用。
1. @Files
注记,传递指定代码文件的上下文
当你在对话框输入 @Files
注记时,Cursor 会自动弹出对你代码仓库的检索列表,你可以输入你想要导入上下文的文件名,而后按下确认键,相应的文件里的内容便会届时自动注入到上下文中:

2. @Code
注记,传递指定代码块的上下文
Code
注记提供更精确的代码片段,@
注记的使用都大同小异,会弹出相应的检索框,你输入关键词后在索引列表中选择相应的代码块即可。
代码块的识别是由你开发环境的 LSP 决定的,大多数情况下都是精确的:

3. @Docs
注记,从函数或库的官方文档里获取上下文
@Docs
注记能够从函数或库的官方文档里获取上下文。目前,它只能从可访问的在线文档里获取上下文。因此,你自己写的类似于 JSDoc 之类的文档信息除非你能整一个线上地址,否则是没用的~我个人觉得这个功能不是很泛用。

@Docs
注记,通常使用需要你手动导入文档
4. @Web
注记,从搜索引擎的搜索内容获取上下文
@Web
注记类似于一种方法,它会默认将你的提问先向搜索引擎进行搜索,然后从搜索结果里提取上下文喂给 LLM。但因为 Cursor 官方没公开透明具体的实现法子,它自个也没调好,实际上使用效果忽好忽差的。
如果你遇到问题想偷懒不打开网页搜报错或是大模型自身的回答无法解决问题,你可以直接使用这个注记。
5. @Folders
注记,传递文件目录信息的上下文
@Folders
注记能够提供文件目录的相关信息,如果你遇到什么路径问题,可以考虑使用这个注记向大模型寻求解决方法。

6. @Chat
注记,只能在文件内的代码生成窗口里使用的注记
@Chat
注记只能在文件内的代码生成窗口(CTRL + K
打开的窗口)里使用,它能够将你右边打开的对话窗口里的对话内容作为上下文传递给大模型。

7. @Definitions
注记,只能在文件内的代码生成窗口里使用的注记
和 @Chat
注记一样,@Definitions
注记只能在文件内的代码生成窗口里使用。它会将你光标停留的那一行代码里涉及到的变量、类型的相关定义作为上下文传递给大模型,类似于 @Code
注记。

8. @Git
注记,只能在对话窗里使用
对话窗指的是通过 CTRL + L
与 CTRL + I
打开的对话窗口。@Git
注记能够将你当前的 Git 仓库的 commit 历史作为上下文传递给大模型。
感觉比较适合在代码协作的时候查战犯清算的时候使用。
9. @Codebase
注记,只能在对话窗里使用,用于在代码仓里扫描相应的文件传入
Codebase
注记其实不是很好用,与其说它是扫代码仓,不如说是从代码仓里寻找到你想要的文件的上下文传入,也就是 CodebaseFilter
。
我感觉平时开发不会用到,因为它要传递过滤条件设置过滤参数:

@Codebase
注记需要你传递数量、过滤/排序时使用的模型等信息
它和通过 CTRL + enter
快捷键的区别估计就在于你能够自定义查询的过滤规则
总结
本文介绍了Cursor的下载和使用新手如何快速上手,Cursor集成了LLM的编译器更加强大,并且极易上手,在使用了一段时间之后也是慢慢和Cursor在编程上形成了默契,相比较之前的GitHub copilot,Cursor能力更强更全面。