• 作者:老汪软件技巧
  • 发表时间:2024-09-07 10:04
  • 浏览量:

最近刷到好几条推送都是在说这个基于VSCode二开,内置了AI助手的编辑器Cursor,正好今天有时间就来尝尝鲜。

1. 安装

Cursor的安装非常简单,访问上面的官网主页链接,然后直接下载就好。我这里Ubuntu系统下载后是AppImage文件,为该文件设置一下权限chmod a+x或者直接右键允许运行即可。这样就算安装完成了,当然如果想命令行直接启动,可以链接到环境变量的路径中。

2. AI助手尝鲜

打开之后会将之前VSCode中的插件进行加载,同时需要install一下。然后随便打开一个项目来试试,毕竟是基于VSCode二开所以在编码方式以及各种快捷键方面完美兼容。作为Cursor最大的特点,AI协作肯定是最先要来体验的东西。这里我拿之前一个写着玩的Go项目为例,因为涉及到部分使用ffmpeg编码文件的操作,所以来拿这个问问AI助手。

首先打开设置界面,看看目前支持的模型

可以看到已经默认支持了一些模型,也可以添加新的模型以及加入OpenAI的api,那直接白嫖试试免费的这些模型的效果。

看起来还不错,那再试试更复杂点的问题

首先不看它给出的代码,就看它的回答大致内容是没有问题。我这里只说了优化后处理,而它能通过当前文件分析对应的代码片段或者说函数,这一点就已经能及格甚至良好了。再来看看它的改进,由于gocv是基于opencv的bindings(后续有时间全部换成cgo的动态库调用,推理性能会大幅提升不过就是不好拓展更多模型),所以在go的代码中要时刻注意C++部分的内存释放问题(调用Close()),否则就会导致内存泄漏。我这个应用本身是针对视频流的,所以对于内存泄漏会更早暴露,也许只处理一段时间可能电脑就卡死了。

再来细看一下给出的建议代码,data[4:]不是Mat而是一段数组,肯定是不能直接传入MinMaxLoc方法的,所以这里有明显的问题。如果要转为Mat传入还是会涉及到内存分配和释放的问题,所以其实最好的办法就是直接在go层面遍历取最大值下标,而不是非要通过opencv的方法。

3. 小问题

不过在体验过程中我也发现一个小问题,就是在Cursor中运行的服务并不能很好的被“发现”。

首先在Cursor中启动服务

可是在nvitop以及htop中看到的不是server而是cursor.AppImage

只能在top中才能查看真正的服务名,而我还是更习惯用htop来查找运行的任务。

4. 总结

AI集成到IDE确实是未来的趋势,我们也要慢慢习惯利用AI来提高编码效率。相信只要不是特别专业或者小众的问题,AI还是能给出不错的答案或者启发的。整体体验下来,Cursor会让你感觉就在使用拥有AI功能的VSCode,非常容易上手,但是和VSCode安装一些AI插件的效果可能相差不大。