Nvim 基于 Deepseek 和 qwen 的 coder copilot 补全插件。

演示:
deepseek-copilot-nvim-2.mov
1)配置 init.lua
基于 Packer.nvim 最简单的配置:
use { 'jayli/copilot.nvim' }
vim.g.copilot_apikey = "{你的 deepseek 的 apikey}"
执行:PackerInstall
默认支持的是 deepseek 官网的模型,去deepseek官网获取到 api key 即可。
2)安装 python 依赖
pip install httpx
pip install neovim
登录:https://platform.deepseek.com/api_keys
创建你的 API key,创建好后需要将 key 复制下来,填写到vim.g.copilot_apikey
处。

登录阿里云后,参照这里获得 APIkey:https://bailian.console.aliyun.com/?tab=api#/api/?type=model
api key 赋值给 vim.g.copilot_apikey
。
插入模式下,正常输入时会自动联想,联想完成后敲 Tab 键完成补全,因为对 Tab 键有强绑定,所以也做了对一些常用补全插件的兼容(coc、nvim-cmp 和 vim-easycomplete)。
- Deepseek 完整配置
use { 'jayli/copilot.nvim' }
vim.g.copilot_apikey = "sk-xxxxxxxxxxxxxxxxxxxxxxxx"
vim.g.copilot_base_url = "https://api.deepseek.com/beta" -- 默认是 https://api.deepseek.com/beta
vim.g.copilot_timeout = 10 -- 默认是 10
vim.g.copilot_lines_limit = 500 -- 当前行前后行数限制,默认 500
vim.g.copilot_model = "deepseek-coder" -- 选择你的model名称,默认deepseek-coder
vim.g.copilot_llm = "deepseek" -- 选择你的模型引擎,默认 deepseek,千问:qwen
- Qwen 完整配置
use { 'jayli/copilot.nvim' }
vim.g.copilot_apikey = "sk-xxxxxxxxxxxxxxxxxxxxxxxx"
vim.g.copilot_timeout = 10 -- 默认是 10
vim.g.copilot_lines_limit = 500 -- 当前行前后行数限制,默认 500
vim.g.copilot_base_url = "https://dashscope.aliyuncs.com/compatible-mode/v1"
vim.g.copilot_model = "qwen2.5-coder-7b-instruct"
vim.g.copilot_llm = "qwen"
copilot_base_url
后会拼接/completions
。deepseek 默认支持的AI补全的模型是deepseek-coder
。qwen 支持的模型这里查看。
1)关于 deepseek 的速度问题
deepseek 有时速度较慢,你可以自己更换 deepseek 模型引擎,修改vim.g.copilot_base_url
的默认值为https://api.deepseek.com/beta
,换成你自己部署 deepseek 后的 base url 即可。
2)编程补全的模型选择
Github Copilot 和 TabNine 都很好,但 Github Copilot太慢,TabNine 太贵。国内能用的模型有一些代理后的 GPT4 速度还行,还有两个专用于代码补全的 DeepSeek-Code ,qwen 和 CodeGeex4。综合用下来效果好的是 deepseek 和 qwen。
如果是阿里内网用户,那果断使用灵码或者 Aone Copilot,速度和效果都超过 deepseek 和 qwen,我也实现了 Aone Copilot 的 nvim 插件,ata 上搜一下。