基本命令:

  • Tab:自动填充

    • 与vscode其他代码辅助ai一样,当写代码是,会智能提示,此时按tab接受代码。
  • Ctrl+K:编辑代码

    • 选中代码,CTRL/CMD + K调出对话框,此时生成内容依据的上下文会是你选中的内容,也可以选中空白区域,属于从0到1:如下对话框右下角可以选择模型
  • Ctrl+L:回答用户关于代码和整个项目的问题,也可以编辑代码(功能最全面)

  • Ctrl+i:编辑整个项目代码(跨文件编辑代码)

    • 使用 CTRL/CMD + I 能够打开 Cursor 的特殊功能:Composer。Composer 是 Cursor 的特色功能,它的功能就是在一个对话窗口里同时对多个文件进行修改。是专为整个项目设计的,可以通过和模型对话来开发整个项目,过程就和聊天差不多,在会话中可以帮助你创建文件、删除文件、同时编辑多个文件等功能。目前ctrl+L也可以从0到1开发整个项目。

@注记

为了更方便地向大语言模型提供上下文信息,Cursor 内设了不同地 @ 注记,使用 @ 注记能够方便地注入不同类型的上下文信息到你的对话里。

  • @Files 注记,传递指定代码文件的上下文

@后显示注记列表,选择Files,如下Cursor 会自动弹出对你代码仓库的检索列表,可以输入你想要导入上下文的文件名,而后按下确认键,相应的文件里的内容便会届时自动注入到上下文中;按下确认键;@+指定文件,和下面直接add context一样,且可以直接从左侧目录里对应文件拖进来,效果是一样的:

  • @Code 注记,传递指定代码块的上下文

@后选择code(测试文件中只有一个函数getColumns):点击选中后:

  • @Docs 注记,从函数或库的官方文档里获取上下文

能够从函数或库的官方文档里获取上下文。目前,它只能从可访问的在线文档里获取上下文。因此,你自己写的类似于 JSDoc 之类的文档信息除非你能整一个线上地址。

为外部文档建立知识库进行问答的功能,可以在设置中加入文档,例如加入开发文档作为Cursor的知识库来更好的辅助编程。

  • @Web 注记,从搜索引擎的搜索内容获取上下文

类似于一种方法,它会默认将你的提问先向搜索引擎进行搜索,然后从搜索结果里提取上下文喂给 LLM。但因为 Cursor 官方没公开透明具体的实现法子,它自个也没调好,实际上使用效果忽好忽差的。

如果你遇到问题想偷懒不打开网页搜报错或是大模型自身的回答无法解决问题,你可以直接使用这个注记。
拓展: 让cursor参考在线API文档直接黏贴即可,黏贴后显示会多一个@(自动加的,相当于@Link)

  • @Folders 注记,传递文件目录信息的上下文

能够提供文件目录的相关信息,如果你遇到什么路径问题,可以考虑使用这个注记向大模型寻求解决方法。

拓展: 目录提示列表,若是目录太多,可以直接从左侧目录里拖进来,效果是一样的

  • @Definitions 注记,只能在文件内的代码生成窗口里使用的注记

只能在文件内的代码生成窗口里使用(CTRL+K的对话框)。它会将你光标停留处附近的代码(上下的可能都会有,看位置)里涉及到的变量、类型等的相关定义作为上下文传递给大模型。

如下会把当前选中的代码块或者文件涉及的变量、引用等的定义显示出来:

  • @Git 注记,只能在对话窗里使用

对话窗指的是通过 CTRL + L 与 CTRL + I 打开的对话窗口。@Git 注记能够将你当前的 Git 仓库的 commit 历史作为上下文传递给大模型;@后会显示commit历史记录列表供选择

  • @Codebase 注记,只能在对话窗里使用,用于在代码仓里扫描相应的文件传入

设置里需要开启(默认是开启的):配置会计算整个项目目录文件的索引,方便cursor更深入的理解整个项目,

拓展: 其中Hide Settings中有些隐藏的配置:

第一个:开启时新增加的文件夹会默认创建索引,也可以自己手动点击Compute Index来更新索引

第二个忽略文件配置:比如前端项目node_modules文件夹以及一些静态资源等,一般开发不需要cursor理解可以点击后面红色框在忽略文件里配置

第三个:开启时会把git的提交历史记录也创建索引,这样的话方便Cursor了解整个代码仓库变动过程

默认开启状态如下,可以删除索引,重新计算等,注意项目越大计算索引越慢`

  • @Notepad

左侧目录结构中最下面有一个NOTEPADS,里面可以出创建NOTEPAD文件,一般是用来写需求的,@后可以添加对应需求为上下文

  • @Lint errors 主要是用来代码规范检查的

先@Lint errors在@Files 之后提交,就可以对指定的file进行代码规范检查

例如:@Lint errors @App.js

Save all和Accept all的区别:

当Composer生成代码后,可以看到左侧生成了对应的目录以及文件,点开的话也可以看到代码,但是文件显示是未保存的状态,文件最下面还是显示是要Accept File还是Reject,此时预览看不到效果,此时点击Save all就可以预览看效果,如果满意再点击Accept all不满意点击Reject all,但是生成的代码看注释就觉得没问题,此时不需要预览了就直接点击Accept all即可,即二者区别是Save all可以先看看效果,但是还可以reject掉,但是Accept all是没有反悔的机会的,直接就全保存了代码了,只能通过Restore恢复了(Restore恢复的话,本轮对话生成的文件会删掉但是目录还存在需要手动删除了,若是误点的,那么在用同样的对话在生成一边有时候可能会导致对话混乱,可以新开个对话再执行)

agent模式:

生成代码后会自动检测是不是需要安装,需要的话会自动安装后自动执行,执行过程中出错会自动修复之后在执行,直到代码运行基本没有错误了才结束对话。不开启的话,agent模式在遇到需要执行命令时,会停下来,让你确认是否要执行,不点击会一直等待,需要执行点击蓝色按钮:

Cursor Settings->Features->Enable yolo mode 开启后如下:

  • Yolo prompt:设置prompt告诉cursor哪些命令可以自动执行不需要询问,此处不配置,可以配置下面的两个

  • Command allowlist:命令白名单,既可以自动执行的命令,如设置的python、docker等

  • Command denylist:命令黑名单,如delete、rm等非常危险的删除操作,需要像上面一样,询问,不自动直接删除。

  • Delet file protection:删除文件保护,开启后会阻止agent自动删除文件,仍需要询问

Cursor设置:

  • General通用配置:比如rules等
  • Models:大模型配置,可以新增和选择模型
  • Features:Cursor功能配置,如自动补全tab功能、chat和composer配置等
  • Beta:其他功能,暂时未用过,如 bug Finder

Cursor Rules配置-配置提示词:

设置里有Rules配置,如下,在rules中可以设置整个代码块的代码风格、规范等,还可以告诉AI是前端工程师还是后端,擅长什么技术,对代码的要求等等,就是AI的prompt(提示词),用来引导 AI 生成特定类型、风格或内容的输出。

注意看上面的说明,rules配置生效的范围。下面有个配置Include .cusorrules file,即Rules是全局的,即打开的所有项目对话都会受这个配置影响,那么若是前端项目和后端项目代码规范不一样怎么办,此时就需要下面的配置.cusorrules文件,即该文件是项目级的,前面勾选了对号,若项目中存在.cusorrules文件,则以.cusorrules文件优先,若是去掉勾选即使存在也会忽略,全局的rules优先。rules这里有很多参考https://cursor.directory/