用Cursor开启JAVA+AI生涯

简介: Cursor是一款基于VS Code开发的多功能编辑器,支持多种语言开发,具备与AI无缝集成、响应速度快及占用内存小等优势。然而,许多用户在使用初期可能会遇到一些问题。本文详细介绍了如何下载和安装Cursor,推荐的插件清单,常用快捷键设置,以及关键配置文件(如settings.json和launch.json)的调整方法。此外,还提供了关于主题选择、颜色修改、Git操作、快捷键自定义等方面的实用技巧,帮助用户快速上手并高效使用Cursor。最后,文章强调了Cursor作为AI时代研发工具的潜力,鼓励用户探索其在业务分析、创新整合和效率提升方面的更多可能性。

Cursor 是基于VS Code开发的一款编辑器,支持多种语言的开发编辑。与传统的开发工具相比,它有多种优势:与AI无缝集成,响应速度快,占用内存小。但很多同学在"起步"过程中遇到了一点点问题,导致起步不成功。本文描述一些实用的小技巧,帮助大家快速用Cursor开启AI生涯。

一、cursor下载

下载Cursor

https://www.cursor.com/

备注:使用cursor需要收费,且费用颇高

支付方式可以使用 Wildcard 虚拟信用卡
https://blog.csdn.net/qq_33146717/article/details/145172851

或者免费版用15天,然后换一个邮箱。

二、安装插件

刚下载的cursor几乎没有任何功能,需要用安装插件的方式来把一个cursor组装为Java开发平台。切换到插件搜索下载即可。

建议安装插件清单:为了实现和idea基本一致的开发体验,建议安装如下插件。

background
Chinese(Simplified)(简体中文) Language Pack for Visual Studio Code
Chrome Extension Developer Tools
Copy Reference
Debugger for Java
Diff Folders 
Draw.io Integration
Extension Pack for Java
GitLens — Git supercharged
Gradle for Java
Image preview
IntelliCode
IntelliCode API Usage Examples
indent-rainbow-blocks
Language Support forJava(TM) by Red Hat
Markdown All in One
Markdown Image
Markdown Image Manage
Markdown Preview Enhanced
Material Icon Theme
Maven for Java
Project Manager for Java
Project Manager
Prettier - Code formatter
Test Runner for Java
Todo Tree
VS Code Counter
vscode-pdf
XML Tools

建议屏蔽的插件:

java:oracle版本,有一堆java11以上版本的有创新但是生产环境用不到的功能。

三、常用快捷键

快捷键  

查看类源码:Ctrl+鼠标左键
快捷键命令搜索:Ctrl+Shift+P+命令名称
按文件名搜索文件:Ctrl+P
根据类名查找类:Ctrl+T
注释代码:Ctrl+/
开启/关闭侧边栏:Ctrl+B
全局查找并替换:Ctrl+Shift+F
文件内查找:Ctrl+F
修改变量或类名:F2
查找变量或类的引用:Shift+F12
查找接口或方法的实现:Ctrl+F12
格式化代码:Shift+Alt+F
重构抽取变量或方法:Ctrl+Shift+R
回退到上一个操作:Alt+左箭头
前进到下一个操作:Alt+右箭头
提示可能的操作,如变量生成:Alt+.
移动一行代码:Alt+上箭头或Alt+下箭头
删除当前行代码:Ctrl+Shift+K

打开AI窗口: Ctrl+Shift+L

四、建议配置

vscode的配置项目很多。为了快速启动项目,推荐下面的懒人配置。

4.1、settings.json

settings.json是关于整个项目的:启动内存,编辑器样式,自动编译等配置。

一般位于项目的.vscode/settings.json

{
    //设置内存大小
    "java.jdt.ls.vmargs": "-XX:+UseParallelGC -XX:GCTimeRatio=4 -XX:AdaptiveSizePolicyWeight=90 -Dsun.zip.disableMemoryMapping=true -Xmx16G -Xms2G -Xlog:disable",
    //maven视图:分层
    "maven.view": "hierarchical",
    //构建失败继续:开启
    "java.debug.settings.onBuildFailureProceed": true,
    //启动窗口、打开文件夹、保存文件时的自动编译开关
    //影响启动速度,如有需要可启动后再手动打开
    "java.autobuild.enabled": false,
    //debug启动时自动编译:关闭
    //如果打开,则应用启动前需要编译整个项目,耗时1.5-5分钟
    //建议手工编译,可提升启动速度
    "java.debug.settings.forceBuildBeforeLaunch": false,
    //debug自动加载修改后的类
    "java.debug.settings.hotCodeReplace": "auto",
    //保存时自动编译:开启
    //但似乎此参数无效,实操经验是:
    //倘若java.autobuild.enabled为true,则保存后自动编译
    //倘若java.autobuild.enabled为false,则保存后不自动编译
    "java.compile.onSave":true,
    //问题装饰:关闭
    "problems.decorations.enabled": false,
    //null分析:关闭
    "java.compile.nullAnalysis.mode": "disabled",
    //未使用导入:忽略
    "editor.unusedImports.severity": "ignore",
    //未使用变量:隐藏
    "editor.showUnused": false,
    //自动保存:延迟
    "files.autoSave": "afterDelay",
    //自动保存延迟时间:1000毫秒
    "files.autoSaveDelay": 1000,
    //JAVA项目层级展示
    "java.dependency.packagePresentation": "hierarchical",
    //Peek References窥视试图颜色配置
    "workbench.colorCustomizations": {
        "peekView.border": "#FF0000", // 边框颜色
        "peekViewEditor.background": "#330099", // 代码编辑区背景
        "peekViewResult.background": "#3300CC", // 结果列表背景
        "peekViewTitle.background": "#FF0000"// 标题背景
    }
}

4.2、launch.json

launch.json是关于项目可启动应用的配置。位于.vscode/launch.json

下面是一个我所在us团队启动应用的示例,关键参数在于projectName、mainClass、args。

{
    "version": "0.2.0",
    "configurations": [
        {
            "type": "java",
            "name": "Launch Java Program",
            "projectName":"us-start",
            "request": "launch",
            "mainClass": "com.amap.us.start.Application",
            //"preLaunchTask": "mvn clean install",
            "args": "--spring.profiles.active=testing,gray8",
            "vmArgs": "-Xms516M -Xmx2048M -Djps.track.ap.dependencies=false  -Dspring-boot.run.fork=false"
        }
    ]
}

配置完成之后,即可在运行窗口启动项目进行调试等操作。

4.3、启动窗口、打开文件夹、保存文件时的自动编译-自动编译选项

如果你遇到了"打开cursor很耗时,需要3-5分钟甚至更久"的问题,这个配置很适合你。

settings.json

//启动窗口、打开文件夹、保存文件时的自动编译开关
    //影响启动速度,如有需要可启动后再手动打开
    //打开后,启动窗口,打开文件夹时会编译一次项目,耗时1.5-5分钟
    //因此不建议打开
    "java.autobuild.enabled": false,

4.4、选择JDK

command+shift+p 搜索classpath

建议选择1.8.0_300以上版本。如果启动报错 diamond serverlist 未加载成功,是jdk版本太低,如果启动报错duplicateKey[bizId,scenario],需要手动重新编译gbf。

4.5、debug配置-应用启动前的强制自动编译

如果你想『debug』的时候,代码改动后立即热部署生效,可以尝试如下配置。

等价于配置

//启动窗口、打开文件夹、保存文件时的自动编译开关
    //影响启动速度,如有需要可启动后再手动打开
    "java.autobuild.enabled": true,
    //debug应用启动自动编译:打开
    //如果打开,则应用启动前需要编译整个项目,耗时1.5-5分钟
    //建议手工编译,可提升启动速度
    "java.debug.settings.forceBuildBeforeLaunch": true,
    //denig自动加载修改后的类
    "java.debug.settings.hotCodeReplace": "auto",

4.6、清空缓存--很有用

在项目运行期间,偶然会遇到项目崩溃,例如:

在项目中新建了一个maven的module,但是pom.xml的格式不正确,导致maven组件运行崩溃。

此时:重启cursor也不管用,表现是:无法打开文件,无法运行插件,无法浏览git历史,无法和ai对话。

解决办法:找到缓存文件夹,删掉缓存文件,再重启cursor。

缓存文件夹目录地址
~/Library/Application Support/Cursor/User/workspaceStorage
例如我的地址
/Users/kanmars/Library/Application Support/Cursor/User/workspaceStorage

删除文件位置:

问题表现:

4.7、转化为大写-小写 设置快捷键

command+shift+p  搜索转化为大写/小写。

我的习惯是绑定 cmd+shift+u为大写,cmd+shift+m为小写。

4.8、编译单个文件

方法一:打开自动编译开关java.autobuild.enabled=true

但启动窗口,打开文件夹时都会编译整个项目,耗费1.5-5分钟。

方法二:maven增量编译

经了解资料,maven并不支持增量编译,但支持按模块编译。

mvn compile -DskipTests -pl <模块名称>,可以避免编译整个项目。

方法三:task。未实验成功

https://blog.51cto.com/u_16213457/12958417

建议:方案一  日常情况下关闭自动编译开关,如果确实需要本地debug的,再打开此开关。

4.9、maven如何始终跳过测试

idea使用maven编译时可以关闭testCase避免每次打包自动运行测试用例,vscode也有同等能力,在设置中查找maven配置(@ext:vscjava.vscode-maven),添加选项:-DskipTests。

4.10、主题-建议用深色visualStudio

原因:点击某个方法的调用方的区别(窥视视图)

默认 cursor dark

使用深色visualStudio,略微的有个浅色的提示框。

4.11、修改窥视视图颜色

cmd+点击方法,查看调用链颜色太浅了,看不清楚。可以手工修改颜色。

settings.json中需要加入如下配置:

"workbench.colorCustomizations": {
        "peekView.border": "#FF0000", // 边框颜色
        "peekViewEditor.background": "#330099", // 代码编辑区背景
        "peekViewResult.background": "#3300CC", // 结果列表背景
        "peekViewTitle.background": "#FF0000"// 标题背景
    }

五、常见操作

5.1、git

提交记录

缺陷:idea可合并多次提交,查看变更。

而git graph只能查看单个提交的变更。

代码比对

单个文件比对

5.2、返回上一次command+点击的位置

默认:control+-

可以command+shift+p搜索『返回』,修改为习惯的快捷键。

例如command+option+左箭头。

六、cursor-rules

可以定制cursor的AI运行时的规则,位于.cursor文件中。

rules可以作为一种预设的规则,为AI提出:运行指导、限制规范。帮助我们更好地完成目标。

示例:

https://juejin.cn/post/7471044704647053353

https://cursorrulescn.oosakana.com/

https://blog.csdn.net/heiyeshuwu/article/details/145951789

七、MCP

通过mcp可以接入很多有意思的工具,为日常工作提效。例如接入mcp-server-playwright工具,替你完成:"打开浏览器,打开日志查询平台,根据gsid查询到一条日志,再把日志复制到debug平台的页面中,运行debug平台,获取日志,排查问题,给出结论"等一套完整的"日志排查"工作。

推荐mcp搜索网站:http://mcp.so

好用的mcp推荐:

beyond资料

https://github.com/modelcontextprotocol/servers

https://smithery.ai/server

https://cursor.directory/

https://github.com/punkpeye/awesome-mcp-servers

https://mcp.so/

八、最后加两句

cursor是AI时代的研发工具,作为『研发工具』,它给了我们一个机会,去结合AI做一些事情。比如:业务分析,整合创新,研发提效等。

本文只是『如何启动cursor并能简单使用』的一个"如何起步"的简单说明。如何『用工具创造价值』还有待后续补充。

来源  |  阿里云开发者公众号

作者  |  昔在


相关文章
|
22天前
|
人工智能 监控 中间件
深入解析|Cursor编程实践经验分享
本文是近两个月的实践总结,结合在实际工作中的实践聊一聊Cursor的表现。记录在该过程中遇到的问题以及一些解法。问题概览(for 服务端): 不如我写的快?写的不符合预期? Cursor能完成哪些需求?这个需求可以用Cursor,那个需求不能用Cursor? 历史代码分析浅显,不够深入理解? 技术方案设计做的不够好,细节缺失,生成代码的可用性不够满意?
282 10
深入解析|Cursor编程实践经验分享
|
1月前
|
人工智能 Java 开发工具
MCP Java 开发指南
MCP Java 开发指南
1155 44
MCP Java 开发指南
|
2月前
|
机器学习/深度学习 数据采集 存储
大模型微调知识与实践分享
本文详细介绍了大型语言模型(LLM)的结构、参数量、显存占用、存储需求以及微调过程中的关键技术点,包括Prompt工程、数据构造、LoRA微调方法等。
364 72
大模型微调知识与实践分享
|
JSON 前端开发 Java
RestfulToolKit:便捷的 IDEA 接口测试神器
RestfulToolKit:便捷的 IDEA 接口测试神器
2294 0
RestfulToolKit:便捷的 IDEA 接口测试神器
|
3月前
|
人工智能 弹性计算 运维
阿里云 MCP Server 开箱即用!
本文介绍了如何通过alibaba-cloud-ops-mcp-server和MCP(Model Context Protocol)实现AI助手对阿里云资源的复杂任务操作。内容涵盖背景、准备步骤(如使用VS Code与Cline配置MCP Server)、示例场景(包括创建实例、监控实例、运行命令、启停实例等),以及支持的工具列表和参考文档。借助这些工具,用户可通过自然语言与AI助手交互,完成ECS实例管理、VPC查询、云监控数据获取等运维任务,实现高效“掌上运维”。
|
5月前
|
人工智能 Java API
Java也能快速搭建AI应用?一文带你玩转Spring AI可落地性
Java语言凭借其成熟的生态与解决方案,特别是通过 Spring AI 框架,正迅速成为 AI 应用开发的新选择。本文将探讨如何利用 Spring AI Alibaba 构建在线聊天 AI 应用,并实现对其性能的全面可观测性。
1356 83
|
1月前
|
人工智能 自然语言处理 数据可视化
DeepSeek+Coze:普通人也能轻松搭建AI智能体的完整指南优雅草卓伊凡
DeepSeek+Coze:普通人也能轻松搭建AI智能体的完整指南优雅草卓伊凡
555 1
DeepSeek+Coze:普通人也能轻松搭建AI智能体的完整指南优雅草卓伊凡
|
NoSQL Java Redis
请勿过度依赖Redis的过期监听
云栖号资讯:【点击查看更多行业资讯】在这里您可以找到不同行业的第一手的上云资讯,还在等什么,快来! Redis过期监听场景 业务中有类似等待一定时间之后执行某种行为的需求 , 比如30分钟之后关闭订单 . 网上有很多使用Redis过期监听的Demo , 但是其实这是个大坑 , 因为Redis不能确保key在指定时间被删除 , 也就造成了通知的延期。
请勿过度依赖Redis的过期监听