Foreword

一直听说Copilot已经很成熟,甚至有人没了都不习惯了,所以试一试Copilot

Copilot

https://github.com/settings/copilot

Copilot 是由 Github 提供的AI编码辅助工具,它可以在编码过程中提供基于 AI 学习的编码建议。在很多情况下,只需要有注释或者函数名称,Copilot就可以实例完整的代码。

目前 Copilot 需要支付10美元/月或者100美元/年。首次使用可以试用2个月,按页面提示点击按钮以开通使用权限,当获得开通权限后,就可以在 Github 上使用 Copilot。

目前Copilot可以在VS、VScode、Neovim、JetBrain全家桶上作为插件使用,其他IDE也得要看有没有人写,没有的话就没办法了

购买

首先拿到2个月的免费试用,这必须要绑定信用卡或者paypal才能下一步

VScode+Copilot

我本身不怎么用VScode,不过为了体验Copilot,只能通过这种方式了

安装VScode插件

第一次试用的时候会提示需要登录Github,并且授权

当代码补全消失以后,会出现下面的灰色内容

但是如果代码补全不消失,他会一直不出现

所以可能需要关闭代码补全以后,再用,设置中搜索intelli然后关闭30个建议提示

对应的Copilot基本没啥设置选项

可能是我测试的是esp-idf的环境,所以Copilot对他学习的比较少?实际写代码提示完全弱于IntelliSense,提示本身就慢几秒,至于演示的那种一下提示很多内容,那更是基本没有,能提醒一个函数名就算不错了。

当我使用Hal作为开头,假装初始化串口,总算获得了超量的代码,只是可惜HAl这都是库已经做好的东西,我为啥还要重写一遍他呢?

或者反过来说,当我需要串口初始化的时候,假装我要写Hal,后面再改成别的名字,仅仅是为了这么个串口初始化,完全不值当

编写整个文件

实际上编写文件或者根据描述编写代码有点不太行,它本身还是基于搜索的,只是显示结果并且帮你过滤了一下而已

代码预测

可以给他部分代码,让他推断一下后面该写什么内容

对于嵌入式而言,Copilot不是很合适,本身环境就不太兼容,提示也不够好

Pycharm+Copilot

Pycharm这里也是一样,先安装插件,安装完以后需要重启一下

Pycharm这里授权有点麻烦,需要验证设备,输入验证码

授权以后,这里就是这样了

pycharm的选项稍微多了一点

似乎比之前的c或者c++,提示多了一些,至少快了很多,而且明显在我还没输入明显内容的时候,就进行了预测提示

继续测试发现,似乎只对某些关键词会有反应,比如unite test,某些常用的名称会预测提示更多的内容。

比如这里的open_file,会直接提示一大串内容出来,甚至有可能他还是对的。

发现这个以后,我重新去VScode下测试,试用相同关键词,可以看到直接给出了一大串c文件的打开,甚至他print还是用esp的输出,我感动哭了,虽然是没啥用的代码。

同理,我使用比较常用的嵌入式相关的函数名,发现完全没有提示,顶多提示我两括号…

回到Pycharm,基本上常用的关键词,都能联想预测一堆内容出来。

但是涉及到某些小众的领域或者平台,就不太行了。

VS+Copilot

这个有点懒的测了,实际上如果是C#开发,C#本身的代码预测,我感觉已经非常不错了,很多情况下可以直接预测一个完整的句子,甚至变量都会自动帮你根据上下文推断替换,而Copilot则多数情况都只会复读…而不会自动增加变量的序列。

所以如果是C#开发,那么自带的代码补全就已经非常好用了。

Cursor

https://www.cursor.so/

Cursor是和OpenAI合作基于GPT4的一个IDE,有点类似VScode,但是它可以帮你写代码,并且质量还可以的那种。

智能生成代码

Ctrl+K

询问代码含义

Ctrl+L

测试

输入的内容是基于esp32的串口读写,给出来的却是arduino的类似代码

告诉他平台是什么,再看下

这次给出来就合理了

试了一下我的easycon,直接就开始胡扯了,还是太小众了

小众文件测试

这里就有点胡写的意思了,但是看个大概还是可以的

故意刁难

开源应该是搜不到任何dshot和stm32的dma相关源代码的,所以他也只能写出来dma配置,而pwm的配置完全没有

输出到下面就截至了,代码太长了,从给出来的代码来看,依然是一个简单的pwm,而不是dshot

代码讲解

甚至可以勾选一部分代码让他解释一下什么意思

小结

Cursor的响应速度明显快于Copilot,并且由于有GPT4的语义理解的支持,输出的内容也比较靠谱。当然如果没有现成的代码,可能还是会遇到胡扯的情况

关于他底层到底是GPT3还是4,还有点小争议,但是无所谓,反正我又不用。

https://github.com/getcursor/cursor/issues/34

Summary

总结python、java之类的涉及实际业务比较多的,重复度比较高的代码,用Copilot的预测补全,可能确实不错,很多基础代码可以直接写完。但是像是小众一些的,比如嵌入式、插件等等比较小众的领域,Copilot完全不如普通的补全。

也可以让Copilot和自带的智能补全同时工作,从而形成互补,至于他的定价,每月10刀,那估计是赚不了我的钱了

Cursor目前是免费的,IDE比较小,工作起来也非常快速,体验很好,至于是否能用,我的回答其实和Copilot一样,再发展发展吧。

Quote

https://tutorials.tinkink.net/zh-hans/vscode/copilot-usage-and-shortcut.html

https://blog.csdn.net/jiangjunyuan168/article/details/126960128

https://blog.csdn.net/m0_46495862/article/details/128691032

https://zhuanlan.zhihu.com/p/615818924