cursor
Cursor
一、下载安装
下载和安装好像是很傻瓜的,在官网下载了直接安装包点点就ok了,然后在官网注册一下账号并且登录到应用就可以了
官网地址:https://cursor.com/cn |
二、配置
看起来就是类似vscode的应用,甚至还有一键从vscode导入设置的选项,但是本地电脑没咋用vscode写前端所以没啥可以迁移的
像vscode一样在插件市场安装了一个中文插件将软件汉化,名字是Chinese (Simplified) (简体中文) Language Pack for Visual Studio Code
然后有一个是要配置一下java的开发环境
设置我的JAVA_HOME和MAVEN_HOME,在setting.json中添加了如下内容吗,然后好像是重启就可以辽
{ |
还有一件事,要安装java的开发支持,比如代码提示之类的,就是把vscode变得像idea一样提示一些内容
插件市场中搜索Extension Pack for Java,安装他下面的一些插件然后等待重启ide
准备工作就完成啦
三、Cursor核心ai功能
3.1 Tab
3.1.1 Tab智能补全
先提出需求,tab自动补全,补全时支持跨行,例如:
// 需求:写一个工具类计算数组平均值 |
3.1.2 智能代码重写
已有片段代码:
public void arrayFor() { |
添加注释内容:使用Stream重构
// 使用Stream重构 |
3.1.3 多行协同优化
多行数据联想
int count; // 普通变量 |
多行批量修改
public static int add(int a, int b) { |
3.1.4 光标位置预测
准备测试代码
// 给下面方法添加注释 |
3.1.5 接受、接受部分和拒绝
准备测试类
public class Student { |
若使用部分接受需要在cursorSetting中开启Partial Accepts功能
还有一些其他的功能和相关设置,比如有个总开关,还有个是否在注释中使用tab功能,还有个如果只是空格换行这些格式问题需不需要tab修正的功能,自动引入包这些
3.2 Chat对话
添加具体需求,如开发语言、等内容,分点描述,在后续修改要说明必须保留的内容或者禁止的实现方式
请生成一个学习计划页面的html+css+javascript实现 |
之后就一步一步搞就可以了,没啥好说的好像
3.2.1 chat三种模式
Chat提供针对特定任务的不同模式
Agent代理模式:默认此模式,允许cursor学习和理解我们的项目代码,并且可以直接进行项目代码更改
Ask对话模式:获取项目代码相关的解释和答案,但是不会直接修改项目代码
Plan(记得以前是manual)还没研究
3.2.1.1 Agent
使用html、css、js实现一个贪吃蛇页面 |
其实就是提需求就ok了
然后还有几个小设置,一个是model,是选择agent模型,一个是keybinding,就是其他模式下快速切换到agent模式的一个快捷键,还有一个auto-run就是像创建文件或执行命令之类的可以自动执行这样
3.2.1.2 Ask
Ask默认不应用任何建议的更改,但是还是有读取文件和上下文的完整能力,可以通过应用其建议对文件和代码进行操作,也可以切换成agent让他帮忙做,可以在实施前进行代码规划这样
这个贪吃蛇页面如何添加多种模式 |
根据回复进行修改或者切换成agent让他来帮忙修改文件就可以了
3.2.1.3 plan
没看明白,记得以前这个是manual,找时间再看看
3.2.2 其他小细节
每一次请求都有一个回滚点,可以回滚到这次修改之前的文件状态;
还有一个历史会话的按钮,可以继续某个历史会话
3.3 ctrl+k 内联智能修改
在编辑器某处点击ctrl+K,打开一个小弹窗,可以的对某些小区域进行只能修改
新建一个main.js文件,点击ctrl+k打开弹窗
生成一个带点击动画的按钮组件,用js实现,点击后控制台打印点击次数 |
开始自动生成,之后可以在方法处点击一下移动光标,之后再点击ctrl+k,输入为每行代码添加注释,则自动处理内容添加注释
四、 Cursor精准上下文指定
4.1 Codebase Indexing 代码库指定
其实就是打开项目后cursor会初始化该工作区的索引,设置完成后将自动为天机道工作取得任何新文件编制索引,保持代码库上下文保持最新
目的就是快速读懂你的项目结构,哪些是工具文件,哪些事业务逻辑;
然后快速定位相关代码,比如搜索getUser时知道先去看userService;
理解代码关系,如Order类和Product类的关联
可以帮助cursor在生成代码时更符合实际,比如命名规范、已有工具函数这些
在项目中可能会有一些不需要去索引的东西,比如node_modules或者target这些,那就要设置一下忽略文件避免干扰和提升索引速度
在当前项目中添加一个
.cursorignore文件,在其中列一下文件和目录就ok了
4.2 Rules规则
给
Chat和ctrl+k生成的内容添加规则和限制,让生成的代码贴合团队规范,比如约束代码风格(强制驼峰命名,必须注释),限定技术选型(禁止使用某些老旧库,优先用指定工具类),提前指定核心参数(设置连接数据库的地址和账号密码)
规则有项目规则(只对当前项目生效,所有人共享规则)和用户规则(当前用户登陆后对所有项目生效)
项目规则:存放在.cursor/rules/随意.mdc文件,随项目代码提交到版本库(如git)
用户规则:用户配置目录如~/.cursor/rules,仅本地生效
若规则同时存在并且冲突,项目规则有限度更高
4.2.1 项目规则
ctrl+shift+p输入new cursor rule
输入文件名,发现自动创建.cursor/rules/文件名.mdc文件,就是创建了一个规则,可以创建很多规则
例如:
--- |
4.2.2 用户规则
在cursor setting > rules中定义
直接添加规则内容即可
4.2.3 拓展 mdc语法
Markdown with Cursor就是mdc
- 前置元数据
- 用
---包裹的yaml格式配置 - 定义规则的基本属性,如作用范围、优先级
- 用
- 规则内容(markdown正文)
- 用markdown语法写具体规划
--- |
规则内容常见结构:
- 代码风格约束规则
# 代码风格 |
- 安全约束规则
# 安全规范 |
- 特殊语法:引用项目文件
用@file引用项目内的配置文件,让ai参考
# 工具链配置 |
4.2.4 拓展 @符号
**@File**:就是指定一个文件,可以指定文件后让cursor解释其中内容
**@Code**:可以指定某段代码,比如@cyk_login 解释这段代码
**@Doc**:指定文档内容,需要先在cursor setting中配置文档地址和名称,配置好后可以直接@name 并提问其中内容
**@Web**:直接从网络寻找内容,比如询问最新更新,询问某些内容比较等
**@Linter Errors**:程序代码报错后,直接在对话区域输入@Linter Errors 解决错误信息,会自动查找运行报错报错内容并自动解决
如果某个框架有官方文档,那配置相关的内容建议直接@Doc
五、写个插件
编写文件:01_chrome插件需求和要求说明
实现一款Chrome的插件,包含下面几个功能: |
提出指令:
@01_chrome插件需求和要求说明 根据插件需求文档,帮我写一份项目的ui文本设计图,将设计图写道02_chrome插件UI设计图 文件中 要求页面简洁清晰 |
最后加载插件验证功能通过
完结
