GitHub Copilot能否停止自动建议,改为由按键触发?

42

我发现Github Copilot在某些特定情况下非常有帮助,但在大多数情况下它的冗长往往没有什么作用。

默认情况下,它始终开启并提供建议(而且经常妨碍我的工作)。我想让它不那么主动,禁用自动建议,但仍然可以通过按键轻松地使用它。

我已经尝试过:

有帮助的文章中,我看到Alt\是触发Copilot建议的默认键。太好了,这是解决方案的一半。

settings.json中设置以下内容似乎会完全禁用copilot!无法使用键盘快捷键访问它。

    "github.copilot.inlineSuggest.enable": false

我不知道这是否是一个漏洞,因为已经有多种方法可以完全禁用 Copilot 了。


确切地说,Copilot似乎不再起作用了。 - Danny
如果你是来这里想知道如何在Visual Studio 2022中关闭它的,那么在"编辑"菜单中有一个子菜单可以打开和关闭它。 - undefined
4个回答

49
在“文件”、“首选项”、“设置”下的 settings.json 文件中,我发现可以设置更通用的选项:
    "editor.inlineSuggest.enabled": false,

看起来效果和我期望的一样。Copilot的建议现在只有在我按下 Alt\ 时才提供,并且在我按下 Tab 时被接受。

我担心这可能会禁用我依赖的其他类型的建议......但语言自动完成似乎仍然可以使用。如果我发现任何遗漏,我会更新这个答案。

顺便说一下,更改键盘快捷键:

在文件、首选项、键盘快捷键下,如果搜索 inlinesuggest,您会看到触发内联提示和提交(即接受)内联提示的按键。双击该行以更改键(但要小心冲突)。

VSCode settings for inline suggestions


3
你最后错过了其他的建议还是这个解决方案仍然有效?我正在尝试 Copilot,但和你一样,我无法忍受我的代码中持续不断地倒入垃圾。 - Imre_G
@Imre_G - 我还没有开启它,没有错过任何东西。不幸的是,我的副驾驶试用期已经结束,所以我无法评论当前状态。 - Jeff Ward
1
好的,我的公司付费使用Copilot,因此我可以重新启用它。不幸的是,如果不切换inlineSuggest,我无法获得良好的用户体验。当它打开时,建议会太频繁出现并与Intellisense / Completion冲突。当它关闭时,很难触发,我无法使其接受(Tab键不能接受Copilot建议,只有Intellisense)。我想要两者,但通常是Intellisense,只有在请求ALT-\时才使用Copilot。 - Jeff Ward
这对我也不起作用。在我看来,向ChatGPT寻求帮助更值得你的投入。也许Copilot X会改变一些事情... - Imre_G
1
虽然这个解决方案仍然有效,但是有一个新的正确设置(自4月23日起)可以修复这个问题: "github.copilot.editor.enableAutoCompletions": false - itamargs
请参阅此讨论串:https://github.com/orgs/community/discussions/7323?sort=new - braulio

12

对于Jetbrains IDE(例如Webstorm)。

您可以在IDE的设置中取消选中自动显示完成(设置>语言和框架>GitHub Copilot)。 enter image description here

然后仍然可以通过按下Alt+\或您熟悉的任何键位来触发自动完成(设置>键盘快捷键>在搜索栏中输入"Copilot"): enter image description here


2
在Visual Studio 2022中有方法可以做到这一点吗? - RMD

7

看起来评价最高的解决方案似乎不再适用了。然而,@BiasInput 提供的上述解决方案在 VSCode 中也可以工作。

打开 user settings.json 并设置 "github.copilot.editor.enableAutoCompletions": false enter image description here

然后使用您分配给命令 editor.action.inlineSuggest.trigger 的键盘快捷键触发 copilot 建议。 enter image description here


@jeff-ward的解决方案对我来说在VS Code中仍然有效。禁用了editor.inlineSuggest.enabled,如果需要,我可以通过键盘快捷方式触发内联建议。 - Jongho Jeon

1
对于那些只是暂时需要禁用覆盖智能感知的内联建议的人来说,我找到了一个方便的解决办法,就是切换以下设置:
"github.copilot.editor.enableAutoCompletions"

当设置为true时,Copilot将按预期工作,并提供内联灰色建议,可以通过Tab键接受。
当设置为false时,Copilot仍然可以工作,但是内联建议和Tab键自动完成功能将被禁用。因此,如果您只想暂时使用智能感知自动完成功能,那么这个设置很好地满足了您的需求。
要进行切换,我选择了Settings Cycler VS Code扩展。
要配置此功能,您需要在settings.json文件中添加具有相应唯一id的切换行为。例如,我有以下配置:
 "settings.cycle": [
    {
      "id": "copilotInline",
      "overrideWorkspaceSettings": false,
      "values": [
        {
          "github.copilot.editor.enableAutoCompletions": true
        },
        {
          "github.copilot.editor.enableAutoCompletions": false
        }
      ]
    }
  ],

然后要在这两个提供的值之间切换,只需在keybindings.json文件中通过引用所选id来为命令添加首选键绑定,就像这样:
  {
    "key": "ctrl+oem_3",
    "command": "settings.cycle.copilotInline"
  }

在我的情况下,在ctrl + ö上,我现在在这些状态之间切换!

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接