1. 工作背景

利用大模型的AIGC方法提供代码补全功能是大势所趋,其中最具有典型代表的就是GitHub Copilot。事实上,lin.nvim : Lin Rongbin’s Neovim Distribution中已经预置了关于Copilot的相关配置。Copilot这么强大的插件在lin.nvim中只需要简单几个步骤就能使用,一定要赶紧行动起来😍。

2. 配置过程

步骤1:以文件$HOME/.nvim/lua/cfg/user_plugins_sample.lua作为模板,创建用户脚本的配置文件:

1
cp user_plugins_sample.lua user_plugins.lua

该步骤的目的是为了启用lin.nvim : Lin Rongbin’s Neovim Distribution的作者为我们预置的Copilot插件(及其相关配套插件)。完成此步骤后进入nvimlazy.nvim插件会自动为我们安装新增加的用户自定义插件。

步骤2:在文件~/.nvim/lua/repo/hrsh7th/nvim-cmp/config.lua中,为nvim-cmp添加补全来源。代码如下:

1
2
3
4
5
6
7
8
sources = cmp.config.sources({
{ name = "nvim_lsp" },
{ name = "luasnip" },
}, {
{ name = "copilot" }, -- github copilot -- <- 新增代码
{ name = "buffer" },
{ name = "async_path" },
}),

步骤3:在文件~/.nvim/lua/repo/zbirenbaum/copilot-lua/config.lua中,将suggestion选项开启,如下代码:

1
2
3
4
require("copilot").setup({
suggestion = { enabled = true },
panel = { enabled = false },
})

步骤4:至此,我们已经开启了在neovim中使用Copilot的所有设置。剩下的步骤,就是在编辑源代码文件时,在neovim命令模式下,手动开启Copilot,命令序列依次如下(为了方便,我将它们写在一起):

1
2
3
:Copilot enable
:Copilot auth
:Copilot suggestion

随便建立一个test.py文件,编辑其代码时,Copilot的效果如下:

在-lin-nvim中启用Copilot代码补全-_lin._nvim中成功启用Copilot.png

neovim中Copilot预置的快捷键是:

<Alt-]> next suggestion
<Alt-[> prev suggestion
<Alt-l> accept suggestion
<Ctrl-l> dismiss suggestion

3. 未来工作

多亏lin.nvim : Lin Rongbin’s Neovim Distribution提供了这么多开箱即用的编辑插件,让我一个才从vim转移到neovim省了很多找插件的功夫。非常感谢插件维护人 @linrongbin16听取我的意见,加入了Copilot的相关功能,让一个不怎么懂lua的人也能顺利把一些插件配置起来。

下面的工作分为两步走:

  1. 将我在《neo|vim 高效编辑的基本配置》中提到的若干插件,集成到当前我的(lin.)nvim中
  2. lua语言为nvim编写一个插件,主要用于为中文编辑提供高效跳转功能。