cursor使用经验分享(java后端服务开发向)

前言

cursor是一款基于vscode,并集成AI能力的代码编辑器,其功能包括但不限于代码生成及补全、AI对话(能够直接将代码环境作为上下文)、即时应用建议等等,是一款面向未来的代码编辑器。

对于vscode,最先想到的一定是他是一款web前端开发的代码编辑器,作为java开发,则应该使用idea。这种想法其实是错误的,虽然vscode广泛用于前端开发,idea广泛用于后端开发,但两者的区别绝不是开发不同的语言的区别。

  • vscode是一款更加轻量级的编辑器,所以其本身功能并不如idea强大,但其扩展性强,插件生态异常活跃,对于想要开发插件的开发者异常友好,这也是vscode本身能够经过一定改变,无痛升级到cursor的根本。
  • idea是一款功能强大的编辑器,但应用整体极重,这也直接导致idea的可扩展性一般,很难衍生出像cursor一样的产品。虽然idea页支持插件,但其插件生态相对封闭,许多高级功能需要通过 JetBrains 自己的团队来实现。这种模式虽然让idea的功能质量极高,但也限制了idea的插件社区创新速度。

正题

废话说完,进入正题。随着cursor的出现,AI编码已经落实到了程序员的实际工作,熟练使用cursor变成已经成为了提高开发效率的必备能力,那么作为后端,我们本不熟悉vscode,该如何使用cursor进行后端开发呢?

1. cursor的下载安装

首先进入cursor官网,官网中间即是下载按钮。

安装后进行简单的选择和登陆后,即可开始使用(我已经安装完了,没办法截图了,但是很简单)。

对于免费用户只能使用Chatgpt 3.5模型,并且有限额(新人应该有试用14天),可以选择购买高级功能,或想办法白嫖。价格可以在官网中的PRICING中查看。

2. 插件下载

之前已经说了vscode的功能及其有限,他对于语言的支持及其依赖插件完成。所以对于我们的java开发,也需要下载插件。下载插件的位置在左上角,如果找不到可以继续往下看大概结构介绍那里有。

2.1 Extension Pack for Java

这个插件包含了java开发所需的所有插件,共包含七款,涵盖了对Java语言、Maven、Gradle等的支持,具体内容可以下载后查看,总之这个插件包含了所有java开发所必须的内容。

2.2 Docker

这个插件对dockerfile的编写提供了更好的支持,如果项目中有便携dockerfie的需求可以下载。

2.3 Python

如果项目中有编写Python脚本的需求,可以下载Python插件来提供更好的支持。

2.4 JetBrains Darcula Theme

这是一个仿造Idea的主题,如果看惯了Idea的原生颜色可以下载,不过代码颜色没有改变,还是很不舒服的,如果有更好的主题麻烦推荐,我也迫切需要。

2.5 JetBrains Icon Theme

这款插件仿造了Idea的文件图标,如果习惯Idea的可以使用,不过也不太好用,因为当java被识别为项目中的java文件后,文件图标还是小茶杯。

2.6 Chinese

这款插件提供了cursor的中文支持,实际上vscode的中文也是这个插件,两者插件是互通的。

3.大概结构介绍

左侧功能页

cursor的大部分功能被集中在了左侧,具体如图所示

资源管理器:项目文件,没啥说的。

搜索:这个就是全局搜索,可以在这里搜整个项目的关键字。选中关键字,右键点击也有搜索选项。

源代码管理:这个就是git的可视化工具,上面是一些简单的代码推送拉去功能,加号就是git add操作,提交就是commit操作,消息就是commit消息

下面是git提交记录

我们也可以通过点击左下角的分支信息,来进行一些分支类的操作,其中刷新按钮就是同步远程分支。

点击分支后,效果如下:

扩展:这里就是查看我们下载的插件,以及搜索插件的地方。

运行和调试:这里可以运行我们的代码,并且进行断点调试。

JAVA PROJECT:这里可以配置vscode识别的Java项目,以及重新构建项目,这个功能就和idea中maven里的刷新符号功能是一致的。

MAVEN:这里就和idea中的maven窗口功能类似,不过构建项目的功能没有在这里,可以控制maven的生命周期。这里还提供了分层视图和扁平视图,这里推荐分层视图吗,因为和idea一样,扁平视图不习惯。

没说到的就是我也没用过,如果有好用的功能,可以评论一下,我尝试尝试。

右侧AI页

cursor的AI功能集中在右侧,我么可以操作的有四个东西。

1. 环境上下文

通过在聊天框上方添加文件,可以添加环境上下文。

但在实际开发中,我们并不会在这里去添加环境上下文,而是在代码中进行选择。(直接复制粘贴,内容也会进入上下文,如终端报错在选中时就没有Add to Chat,我们就可以进行复制粘贴)。

或者直接选择报错位置

这样cursor会直接获取上下文,解决报错。最方便的是解决报错后,我们还不需要手动修改,之需要点击接受就好。

2. AI模式

在聊天框的左下角可以选择AI的模式分别是Agent,Ask,Edit。

  • Agent:适合分步骤的任务,有良好的上下文逻辑。
  • Ask:适合平常询问
  • Edit:适合编辑代码需求
3. AI模型

这就不用多说了,选择AI模型,不过需要提一嘴的是,并不是所有模型都支持上述三种AI模式,当然在你选错的时候,cursor会给出提示。

AI模型可以在cursor的设置中进行配置(设置在右上角)。

后面还可以配置自己的apikey,具体什么套餐能使用什么模型我也不是很清楚,具体怎么设置,我也不是很清楚。

下侧终端页

下侧提供了终端功能,具体包括日志输出,以及终端命令。

其中加号是新建终端,这个就没什么好说的了。终端都长一个样子。

页显示控制

curosr的右上角分别是左,下,右页的显示控制,以及设置。

4. 启动服务

idea中启动服务,之需要在右上角配置一下启动类和启动参数即可,但是cursor没有这种功能,插件也没有(但是我相信不久以后,后端开发的功能会越来越完善,这也是我选择用cursor的原因)。

在cursor中,我们需要在.vscode文件中创建launch.json文件,当你没有创建时,运行及调试页面也会提示你创建。并且通过vscode创建的launch.json文件会根据项目文件,自动写入合适内容,但可能不太准确,还需要手动修改。

文件中内容如下:

json 复制代码
{
  "version": "0.2.0",
  //每一个配置项都表示一个类型的服务启动,比如说springboot中还有测试服务,测试单元,都可以作为一个配置项,自动生成的文件也会包含项目中的这些启动服务配置
  "configurations": [
    {
      "type": "java",
      "name": "Spring Boot-DoucApiApplication",
      "request": "launch",
      //启动主类
      "mainClass": "",
      //项目名称(如果主类在模块中填写模块名称)
      "projectName": "",
      //启动参数
      "vmArgs": "",
      //传入启动主类的参数
      "args": [],
      //如果工作目录在项目根目录则不需要这个参数,如果在模块中则要指定到对应模块的文件夹
      "cwd": "${workspaceFolder}/模块",
      //不懂干嘛的,项目后面还给我生成了setting.json文件以及task.json文件,都不知道干嘛用的
      "preLaunchTask": ""
    }
  ]
}

完成了启动配置后,我们仍然不能直接启动,因为idea启动之前会自动执行编译,但是cursor不会,所以我们还需要执行mvn clean compile命令。

在命令执行完成,成功生成target文件后,这是就可以启动项目了。启动项目可以通过运行与调试界面,也可以通过代码页的右上角提供的按钮。

5.其他

跳转到实现类以及调用处

cursor中没有类似idea的绿色图标跳转到实现类,cursor中可以通过右键点击接口的方法,选择转到实现跳转到实现类。转到引用则是跳转到方法使用的地方。

搜索和全局搜索快捷键

文件内搜索和idea一样,都是ctrl + f,全局搜索则是ctrl + shift + f,可以先选择需要搜索的关键字,然后在按快捷键,可以一键搜索。

后续发现在补充。。。。。

相关推荐
一水鉴天几秒前
为AI聊天工具添加一个知识系统 之135 详细设计之76 通用编程语言 之6
开发语言·人工智能·架构
m0_7482475513 分钟前
数据库系统架构与DBMS功能探微:现代信息时代数据管理的关键
java·开发语言·数据库
计算机-秋大田29 分钟前
基于Spring Boot的企业车辆管理系统设计与实现(LW+源码+讲解)
java·vue.js·spring boot·后端·spring·课程设计
环能jvav大师30 分钟前
Electron桌面应用开发:自定义菜单
开发语言·前端·javascript·windows·electron
汇匠源34 分钟前
Java Spring Boot 外卖系统,构建便捷的本地生活服务
java·spring boot·生活
一水鉴天40 分钟前
为AI聊天工具添加一个知识系统 之136 详细设计之77 通用编程语言 之7
开发语言·人工智能·架构
一只小小汤圆41 分钟前
c++ std::tuple用法
开发语言·c++
Jelena1577958579243 分钟前
爬虫与翻译API接口的完美结合:开启跨语言数据处理新纪元
开发语言·数据库·爬虫
gyc27271 小时前
快速熟悉JavaScript
开发语言·前端·javascript
越甲八千1 小时前
C++海康相机DEMO
开发语言·c++·数码相机