V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
scalaer
V2EX  ›  程序员

讨论下 github copilot, 今天刚通过许可, 求 v 友分享下一些 hack 操作

  •  
  •   scalaer · 2022-03-25 10:01:09 +08:00 · 8437 次点击
    这是一个创建于 999 天前的主题,其中的信息可能已经有所发展或是发生改变。
    64 条回复    2022-04-12 11:57:10 +08:00
    devswork
        1
    devswork  
       2022-03-25 10:02:19 +08:00   ❤️ 4
    写文章,贼 6
    jiezhi
        2
    jiezhi  
       2022-03-25 10:04:06 +08:00
    leetcode test case 可以直接生成了,不过有不少都是错的。
    Immortal
        3
    Immortal  
       2022-03-25 10:06:05 +08:00
    没什么 hack 操作的,最多就是注释上写点函数的逻辑,会自动根据你的注释生成代码,然后进行 code review 就好了
    sinnosong1
        4
    sinnosong1  
       2022-03-25 10:08:56 +08:00
    已经用了一段时间了,有的时候挺智能,有的时候提示很多完全不需要的东西
    wdssmq
        5
    wdssmq  
       2022-03-25 10:15:14 +08:00   ❤️ 2
    ![1KSO_3WKWXZSI6SY_~0_SPH.jpg]( https://s2.loli.net/2022/03/25/6YcWXuoAS7hetH3.jpg)

    昨天正好写了一段儿这个,,今天发现搜狗括号里的英文是不是不对 - -

    只能说搜狗的域名真的挺尴尬的。。
    murmur
        6
    murmur  
       2022-03-25 10:18:32 +08:00
    "Parse the list of expenses and return the list of triples (date, value, currency).
    Ignore lines starting with #.
    Parse the date using datetime.
    Example expenses_string:
    2016-01-02 -34.01 USD
    2016-01-03 2.59 DKK
    2016-01-03 -2.72 EUR

    要告诉 copilot 这些,你这是在为难我胖虎
    bbbbright
        7
    bbbbright  
       2022-03-25 10:22:29 +08:00   ❤️ 1
    自从用了它 你只需要记住 tab 就可以了 完全没有其他操作
    scalaer
        8
    scalaer  
    OP
       2022-03-25 10:22:39 +08:00
    @murmur 真的可以生成处理逻辑
    Veneris
        9
    Veneris  
       2022-03-25 10:25:07 +08:00   ❤️ 7
    借楼问一下,补全时候总是和 idea 的提示冲突,怎么解决
    hushao
        10
    hushao  
       2022-03-25 10:36:10 +08:00
    借楼问下,你们的 copilot 为啥都要申请?我的直接就用了???也没申请过啊,用的不是同一个 copilot ?
    Jwyt
        11
    Jwyt  
       2022-03-25 10:36:49 +08:00
    @hushao 我的也是直接就用上了。。
    Badupp
        12
    Badupp  
       2022-03-25 10:39:14 +08:00
    @hushao 借楼同问.
    scalaer
        13
    scalaer  
    OP
       2022-03-25 10:45:35 +08:00
    @hushao 不知道, 之前要申请 whitelist , 今天才收到邮件
    ngrok111
        14
    ngrok111  
       2022-03-25 10:51:51 +08:00
    我昨天申请的也是今天收到邮件,看来是一批批的
    brucedone
        15
    brucedone  
       2022-03-25 10:56:42 +08:00
    额,之前定义某些 url 列表数组时,总会弹出那种颜色的网站,也算是一种应用方式?
    Curtion
        16
    Curtion  
       2022-03-25 11:05:08 +08:00
    只要变量命名得不错,几乎都能把我想写的逻辑生成出来,写文档也不错,打俩字一路 tab
    rv54ntjwfm3ug8
        17
    rv54ntjwfm3ug8  
       2022-03-25 11:08:11 +08:00
    试试先按 ESC 再按 Tab ?
    我是去年还是前年这功能刚出的时候就申请了,申请完不到 5 分钟就收到了通过邮件
    @Veneris
    @Badupp
    @scalaer
    0vels
        18
    0vels  
       2022-03-25 11:16:06 +08:00
    想去申请一个,发现已经有权限了,奇怪的是 android studio 插件市场里面搜不到,idea 可以,我还以为这几个编译器插件市场都是一样的呢
    xloger
        19
    xloger  
       2022-03-25 11:20:53 +08:00
    我用它写了一段时间 Android ,体验还挺不错的,很多时候我们不得不写一些差别不大的模板代码,然后它能自己补全这点很棒。
    然后还有一些小地方能降低你的心智负担,比如我要算一个坐标在不在某个矩形内,刚输一个 x <= 它就给我补全了(虽然因为 Android ,OpenGL 坐标系的原因它写反了)。
    最大的问题我觉得还是跟 IDE 自带提示协调不好。很多时候我就想输个变量名,结果它给我智能提示了,这时候我的 IDE 提示就没生效,按 Esc 后再输又再补全,这点很难受。
    还有一个问题是暂时没有语义,举个例子我一个变量名叫 sX ,网上大多数人名字都叫 sx ,那它会帮你补全的是 sx ,而不是根据你语法分析出来的,导致时不时要纠正一下变量名。
    leeyuzhe
        20
    leeyuzhe  
       2022-03-25 11:21:36 +08:00
    写文档贼好用,写代码有时候会莫名其妙的补全一大坨完全不相关的代码
    yuyu2140
        21
    yuyu2140  
       2022-03-25 11:22:11 +08:00   ❤️ 1
    @0vels Android Studio 要大黄蜂版本才可以
    xloger
        22
    xloger  
       2022-03-25 11:23:05 +08:00
    @0vels #18 它依赖于某个新版本的 IDEA ,而 Android Studio 稳定版依赖的还是某个旧的不支持 github copilot 的版本。
    Android Studio 的金丝雀版应该是已经支持了,不过我一直是用 IDEA 体验的,日常开发没多少影响,只是 IDEA 经常有报错日志。
    deplivesb
        23
    deplivesb  
       2022-03-25 11:26:42 +08:00
    要啥操作啊,方法起好名字 按 tab 就完事儿了,或者方法下面写好注释,按 tab 就完事儿了
    yazoox
        24
    yazoox  
       2022-03-25 11:39:51 +08:00
    @Veneris 附议
    我用的 vscode ,补全的时候,总是和 vscode 的代码提示冲突。
    又没有快捷捷暂时 toggle copilot ,右下脚虽然有一个小按钮可以点击 enable/disable ,但是点击完了,还有一个 dialog 弹出来确认一下,真是好傻的设计......
    EyebrowsWhite
        25
    EyebrowsWhite  
       2022-03-25 11:42:52 +08:00 via iPhone
    我只能说 js 文件写 console 贼 6🐶
    johnsonqrr
        26
    johnsonqrr  
       2022-03-25 11:45:42 +08:00
    lz 申请之后过了多久通过啊
    pennai
        27
    pennai  
       2022-03-25 11:50:52 +08:00
    @johnsonqrr 我也是今天过的,昨天还是前天申请的
    liuw666
        28
    liuw666  
       2022-03-25 12:03:10 +08:00 via iPhone
    年后那会我申请感觉过了一个月才通过……
    q1angch0u
        29
    q1angch0u  
       2022-03-25 12:03:20 +08:00
    @jiezhi 我 leetcode 的代码它都直接给我生成了。。。
    skies457
        30
    skies457  
       2022-03-25 12:11:07 +08:00 via iPhone   ❤️ 1
    jessun1990
        31
    jessun1990  
       2022-03-25 12:13:46 +08:00
    这个功能第一天出,我就申请了。

    有的时候,自动补全的代码比我写得还对,还好。
    Mashiro
        32
    Mashiro  
       2022-03-25 12:19:02 +08:00
    几个月了还没收到邮件
    pennai
        33
    pennai  
       2022-03-25 12:53:40 +08:00
    借楼问开了 show ide completions side by side 之后,ide 提示和 copilot 提示同时存在的情况下用什么快捷键来采纳 copilot 的? tab 只能采纳 ide 的
    bailitusu
        34
    bailitusu  
       2022-03-25 13:08:59 +08:00
    锻炼下英文表述能力,注释写好了主要一直 tab 就可以了
    pota
        35
    pota  
       2022-03-25 13:11:36 +08:00
    为啥我这都几个月了没通过
    TravisMtg
        36
    TravisMtg  
       2022-03-25 13:32:58 +08:00 via iPhone
    @yazoox 先按一下 esc 取消 copilot 的补全,然后就可以用编辑器的补全了
    Kininaru
        37
    Kininaru  
       2022-03-25 13:36:40 +08:00
    感觉不是很方便,突然跳出来的补全提示很容易打断思路... 并且这玩意儿经常把我代码格式弄乱( Golang )

    大部分时候还是关掉的。不过也挺久没写代码了,不知道现在改进得咋样了...
    CUPAIR
        38
    CUPAIR  
       2022-03-25 14:29:38 +08:00
    @yazoox vsc 代码提示不是下拉式复选框吗,copilot 是暗色文字吧,我设置了 vsc 的补全选定为`enter`,copilot 默认补全是`tab`没什么冲突吧
    remarrexxar
        39
    remarrexxar  
       2022-03-25 14:36:29 +08:00
    有了它之后,养成先写注释的习惯,然后有时候它的实现比我自己想的要优雅的多。
    wupher
        40
    wupher  
       2022-03-25 15:41:34 +08:00
    - 写 markdown 方档
    - 写注释生代码 (复杂逻辑有时还要看一眼)
    - 写代码生成 TestCase

    另外,中文注释生成代码经常能看出国人风格,英文注释代码亦然,日文注释……一言难尽
    stimw
        41
    stimw  
       2022-03-25 16:26:31 +08:00 via iPhone
    实测对 c/c++没啥意义。。我写了几行注释美滋滋以为能帮我补全了,结果按 tab 只是又帮我补了一堆注释。。。
    freefcw
        42
    freefcw  
       2022-03-25 16:31:57 +08:00
    主要还是太容易冲突了,限制 IDE 很智能了,copilot 有些尴尬,很多时候有点过犹不及了
    Hanggi
        43
    Hanggi  
       2022-03-25 16:33:30 +08:00
    用 Copilot 一大重点就是一定要先写注释,然后在写代码!!!

    比如你的函数要在数组中寻找最大值,你就把这个写到注释里。
    后面的代码会给你惊喜。
    kylix
        44
    kylix  
       2022-03-25 16:36:47 +08:00
    我都不记得啥时候申请的了。。。
    最近刚装上 idea 的 Copilot 插件,登录后就直接可以用了
    Unicorns96
        45
    Unicorns96  
       2022-03-25 16:50:37 +08:00
    java 实测,写注释取变量名很好用,其他的就是鸡肋了
    Unicorns96
        46
    Unicorns96  
       2022-03-25 16:58:06 +08:00
    @Unicorns96 补充一下,一些相对固定的如 get/set 自动补全还可以
    kxxoling
        47
    kxxoling  
       2022-03-25 18:21:37 +08:00
    有时候对一些库的调用是错误的,但是一大段代码有非常像那么回事,不能太信它……
    msg7086
        48
    msg7086  
       2022-03-25 18:26:20 +08:00
    这玩意儿,公司项目慎用。用开源项目代码训练出来的 AI 写出来的代码有没有版权问题是不是还没有定论?
    cclin
        49
    cclin  
       2022-03-25 18:28:38 +08:00 via Android
    我是感觉很强的,pyspark 和 c++的代码都补的很准确,怀疑是他会扫描我同一个项目的其他文件代码
    d5
        50
    d5  
       2022-03-25 18:43:56 +08:00
    你只需要写好注释,剩下的交给 TAB 键。连代码风格都可以推演出来。
    Issacx
        51
    Issacx  
       2022-03-25 18:46:42 +08:00
    @msg7086 没有争议,用它写出来的代码也是你的,详情看官网。
    privatetan
        52
    privatetan  
       2022-03-25 18:57:03 +08:00
    我也是今天通过的
    v2vTZ
        53
    v2vTZ  
       2022-03-25 19:01:04 +08:00
    以前我是个 CV 工程师
    v2vTZ
        54
    v2vTZ  
       2022-03-25 19:01:28 +08:00   ❤️ 1
    @v2vTZ #53 如今是个 tab 工程师
    手一抖发出去了...
    guoer
        55
    guoer  
       2022-03-25 19:42:05 +08:00
    tabnine 也挺好用的
    Senorsen
        56
    Senorsen  
       2022-03-25 21:05:38 +08:00
    创建 README.md ,写下你的设计思路,等补全出来就会发现早已有人实现过了,就可以去搜搜是哪个项目了🐶
    msg7086
        57
    msg7086  
       2022-03-26 02:10:19 +08:00
    @Issacx 你说的是这段 Q&A ?
    Who owns the code GitHub Copilot helps me write?
    GitHub Copilot is a tool, like a compiler or a pen. The suggestions GitHub Copilot generates, and the code you write with its help, belong to you, and you are responsible for it. We recommend that you carefully test, review, and vet the code, as you would with any code you write yourself.

    这种申明一点法律效力都没有。
    aleen42
        58
    aleen42  
       2022-03-26 07:55:58 +08:00 via Android
    最不喜歡是粘貼 JS 代碼自動改變了文件上面的 require 部分
    Issacx
        59
    Issacx  
       2022-03-26 09:36:21 +08:00
    @msg7086 多余跟你说,我又不是 pr ,爱用不用。
    dengshen
        60
    dengshen  
       2022-03-26 09:39:13 +08:00 via iPhone
    js 补全后括号可能会多出来几个。。找括号挺麻烦的
    levinit
        61
    levinit  
       2022-03-26 17:54:21 +08:00 via iPhone
    最 hqck 就是越简单越好,你只管敲,看它提示,一些套路很强的文件编写,你就成了一个无情的 tab 机器了
    findex
        62
    findex  
       2022-03-27 21:19:20 +08:00
    开个玩笑,用 copilot 写代码写一天,其实没怎么用脑子。。哈哈哈哈。感觉 copilot 太智能了
    yazoox
        63
    yazoox  
       2022-03-28 15:54:22 +08:00
    @TravisMtg 不知道,我试试

    @remarrexxar 我的 vsc 是,如果 copilot 的提示出来后,vsc 的提示,就不弹出来了......
    sufanx
        64
    sufanx  
       2022-04-12 11:57:10 +08:00
    @Veneris 有个 Show IDE completions side-by-side 的配置
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3428 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 10:53 · PVG 18:53 · LAX 02:53 · JFK 05:53
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.