
Python与Ollama的开发案例
Cursor 是基于VS Code开发的一款编辑器,支持多种语言的开发编辑。与传统的开发工具相比,它有多种优势:与AI无缝集成,响应速度快,占用内存小。但很多同学在”起步”过程中遇到了一点点问题,导致起步不成功。本文描述一些实用的小技巧,帮助大家快速用Cursor开启AI生涯。
下载Cursor
备注:使用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的AI运行时的规则,位于.cursor文件中。
rules可以作为一种预设的规则,为AI提出:运行指导、限制规范。帮助我们更好地完成目标。
示例:
https://juejin.cn/post/7471044704647053353
https://cursorrulescn.oosakana.com/
https://blog.csdn.net/heiyeshuwu/article/details/145951789
通过mcp可以接入很多有意思的工具,为日常工作提效。例如接入mcp-server-playwright工具,替你完成:”打开浏览器,打开日志查询平台,根据gsid查询到一条日志,再把日志复制到debug平台的页面中,运行debug平台,获取日志,排查问题,给出结论”等一套完整的”日志排查”工作。
推荐mcp搜索网站:http://mcp.so
好用的mcp推荐:
beyond资料
https://github.com/modelcontextprotocol/servers
https://github.com/punkpeye/awesome-mcp-servers
cursor是AI时代的研发工具,作为『研发工具』,它给了我们一个机会,去结合AI做一些事情。比如:业务分析,整合创新,研发提效等。
文章转载自:用Cursor开启JAVA+AI生涯