Cursor
Cursor 是一款 AI 代码编辑器,它 fork 了 VS Code 的源代码,在此之上集成了 AI。不同于常见的编辑器插件 AI 应用,
Cursor
是一个独立的应用,它对代码编辑有完全的控制权,因此它可以使用 AI 来深度的提升编码体验。
Features
Tab
根据上下文窗口中最新的改动记录,自动生成代码建议。
代码生成:根据最新的代码更改来预测下一步动作,以此生成推测后的代码建议
- e.g. 在 a 文件(组件)中新增了一个参数配置,在 b 文件中使用来自 a 文件的组件或方法时能够建议这个新的参数配置
多行编辑:可以同时在多行代码上生成代码建议
错误纠正:自动纠正代码编写错误 (e.g. 单词错误,语法错误等);注意:不包含代码逻辑错误
光标预测:基于当前光标所在位置,预测用户下一个要改动的代码位置,用户可以连续 tab -> tab -> tab ... 来应用 AI 生成的代码。
- e.g. 修改了 a 处的一个变量名,会自动导航到代码中应用了这个变量的其他位置。
Chat
指令:
Ctrl + L
,侧边栏聊天通过和 AI 聊天来生成代码,Cursor 默认包含当前文件作为上下文,基于更准确的上下文 ,语言模型会生成更准确的答案(代码)。
Cursor 支持将整个代码库作为上下文。
在聊天中添加不同的上下文
指令:输入
@
触发选项框,选择指令
添加指定文件 (Files):可以选择当前项目目录中不同的文件来作为输入上下文
添加指定文件夹 (Folders)
添加当前文件中的代码块 (Code)
添加代码库 (Codebase):当前项目根目录,可以自定义 include/exclude 文件规则
e.g. 可以分析整个代码库,让 AI 告诉你当前代码库中某个功能是如何实现的
- 根据 AI 的代码分析和查找链路,可以比较清晰的看到代码中的调用链路
e.g. 查找代码库中的指定内容
e.g. 辅助重构代码 (适用于 @Files)
e.g. 代码优化 (适用于 @Code)
...
上传图片,Cursor 会将图片信息包含在上下文中
- e.g. 上传图片后可以输入提示词:编写代码(编写一个新的组件),还原图片中的UI。
添加文档,基于指定文档提问
指令:@Docs
Cursor 提供了一些技术栈的官方文档,用户可以直接将这些文档加入上下文使用
Cursor 也支持添加自定义文档,用户可以手动添加指定的文档(URL),等待Cursor加载后就能使用
联网查询
指令:@Web
- Cursor 会根据查询和用户提供的上下文构建搜索查询,并搜索网络以查找相关信息作为附加上下文
也可以在设置中启用 Always search the web
, 可以让 Cursor 在每次聊天中都会结合联网查询来给出答案。这样也不需要再手动输入指令了
在编辑器中选中代码作为上下文
指令:选中代码后 ->
Ctrl + L
- 可以在代码编辑区域选中代码,并添加到聊天上下文中
使用 Cursor 生成的代码
- 聊天区域生成的代码块中都在右上角包含了
Apply
按钮,点击后可以一键应用到对应的文件中(文件必须存在)。
Ctrl K
简单版的 Chat,输入框内嵌在代码编辑区域
在 Cursor 代码编辑区域,在光标处或者选中代码后键入
Ctrl + K
: 在代码块上方会出现输入框,即可开始 AI 交互- e.g. 可以选中一段代码,让 AI 解释这段代码的含义 或 优化这段代码
在 Cursor 终端中使用:在终端中键入
Ctrl + K
, 可以使用文字描述想要执行的指令,Cursor 会自动生成对应的命令行指令。(对于不熟悉的复杂命令比较有用)
Composer
在一个对话窗内用自然语言描述需求,可以新建、编辑多个文件,无需手动切换文件。
(Cursor 打开新的文件夹) 键入
Ctrl + Shift + I
打开 Composer 模式。在打开的聊天窗口中输入指令使 Cursor 完成工作。
Ctrl + I
打开一个小的可缩放的 Composer 聊天窗口,可以更方便的拖动到屏幕各处, 同时可以方便的在编辑器中操作(e.g. 将生成的命令复制粘贴到终端中执行)。
新建文件夹/文件
- Composer 会根据指令生成代码,并且根据需要能自动在当前的工作目录中新建对应的文件夹或文件来写入 AI 生成的代码
连续的上下文
在 Composer 模式中,你可以连续的输入指令,Cursor 会保留完整的上下文历史。
- e.g. 基于某个功能实现,你可分步的输入指令来引导 AI 实现,过程中无需重复之前已输入过的指令
如果你不需要在连续的上下文环境中,可以手动清除当前上下文。(点击Composer 面板刷新按钮 Reset Composer)
通过对话生成完整的应用
在 Composer 模式下,可以不用编写代码就能生成完整的应用,大多数时间你都在与 AI 聊天,少数时候也需要手动复制/粘贴一些东西(e.g. 一些 Cursor 无法自动完成的脚本命令)。
可以上传图片,并让 Cursor 实现它
遇到程序运行错误时,你也可以将错误信息在聊天中直接发给 Cursor,Cursor 会处理它。
其他配置
Rules for AI (理解为指定的提示词)
可以在 Cursor 设置 ->
Rules for AI
中输入定制的 AI 指令,Cursor 会在聊天中应用这些指令。(这些指令可以是某方面的特殊要求,可以是对某些功能的强调)- e.g. 让 Cursor 总是用中文回复用户: Always respond in 中文.
.cursorrules
: 对于某项目有特殊要求的,可以在项目根目录下新建.cursorrules
文件,Cursor 会在聊天中应用规则。
Ignore Files
提供 Cursor 需要忽略的文件
.gitignore
: Cursor 会识别并应用 git 忽略文件 (git项目中使用此文件即可).cursorignore
: 语法和功能同.gitignore
参考资料
[Cursor Docs](Cursor - Build Software Faster)