尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

minuet-ai.nvim 怎么配置 DeepSeek 实现 FIM 代码补全?

minuet-ai.nvim 怎么配置 DeepSeek 实现 FIM 代码补全? minuet-ai.nvim 怎么配置 DeepSeek 实现 FIM 代码补全【免费下载链接】awesome-deepseek-integrationIntegrate the DeepSeek API into popular software项目地址: https://gitcode.com/GitHub_Trending/aw/awesome-deepseek-integration如果你的目标是在 Neovim 里用 DeepSeek 做 Fill-in-the-middleFIM代码补全可以直接使用 minuet-ai.nvim 这个插件它对 DeepSeek、Codestral、Qwen 等兼容模型提供 FIM 补全同时也支持以聊天模式调用兼容 OpenAI 接口的服务。完成配置后编辑器会在你输入代码时通过 virtual text、nvim-cmp或blink-cmp前端给出补全。开始前需要满足以下条件均来自插件文档的 Requirements 一节Neovim 0.10依赖plenary.nvim至少一个受支持 AI 提供商的 API 密钥本文使用 DeepSeek 的 API key前端按需二选一nvim-cmp或blink.cmp两者均为可选依赖使用 virtual text 前端时不需要它们。安装 minuet-ai.nvim如果使用 Lazy.nvim在插件列表中加入 minuet 及其必需依赖nvim-cmp、blink.cmp两行可按你的前端选择保留或删除specs { { milanglacier/minuet-ai.nvim, config function() require(minuet).setup { -- 你的配置项写在这里 } end, }, { nvim-lua/plenary.nvim }, -- 可选如果你使用 virtual-text 前端则不需要 nvim-cmp。 { hrsh7th/nvim-cmp }, -- 可选如果你使用 virtual-text 前端则不需要 blink。 { Saghen/blink.cmp }, }不使用 Lazy.nvim 的替代路径插件在 luarocks.org 上提供可以用 Rocks.nvim 运行Rocks install minuet-ai.nvim安装。配置 DeepSeek 的 FIM 提供商文档给出 DeepSeek 的两种提供商写法。要使用 FIM 补全主路径是openai_fim_compatiblerequire(minuet).setup { provider openai_fim_compatible, provider_options { openai_fim_compatible { api_key DEEPSEEK_API_KEY, name deepseek, optional { max_tokens 256, top_p 0.9, }, }, }, }其中api_key的DEEPSEEK_API_KEY是原文示例中的占位写法需要你替换成自己的 DeepSeek API 密钥。optional块里的max_tokens、top_p按文档原样保留即可文档未解释这两个参数的具体含义。另一种写法是走聊天接口openai_compatible需要额外指定 DeepSeek 的接口地址这段配置对应的是聊天模式不是 FIM 模式作为文档提供的替代路径列出require(minuet).setup { provider openai_compatible, provider_options { openai_compatible { end_point https://api.deepseek.com/v1/chat/completions, api_key DEEPSEEK_API_KEY, name deepseek, optional { max_tokens 256, top_p 0.9, }, }, }, }选择补全前端三种前端任选其一。最小改动的主路径是 virtual text 前端直接在setup中声明 keymaprequire(minuet).setup { virtualtext { auto_trigger_ft {}, keymap { -- accept whole completion accept A-A, -- accept one line accept_line A-a, -- accept n lines (prompts for number) -- e.g. A-z 2 CR will accept 2 lines accept_n_lines A-z, -- Cycle to prev completion item, or manually invoke completion prev A-[, -- Cycle to next completion item, or manually invoke completion next A-], dismiss A-e, }, }, }auto_trigger_ft {}表示不为任何文件类型自动触发需要手动调用补全如果你要让某些文件类型自动触发就把对应文件类型加进这个列表。如果你已经在用nvim-cmp把它加为补全源并按文档建议调大fetching_timeout文档说明 LLM 响应通常比其他补全源慢因此建议增大超时时间如果只需要手动补全则不需要该设置require(cmp).setup { sources { { -- Include minuet as a source to enable autocompletion { name minuet }, -- and your other sources } }, performance { fetching_timeout 2000, }, }文档同时给出了手动触发补全的绑定方式-- 以下配置将 A-y 键绑定到手动调用补全 require(cmp).setup { mapping { [A-y] require(minuet).make_cmp_map() -- and your other keymappings }, }使用blink-cmp的可选路径把minuet加入默认源并配置 provider 与手动触发键require(blink-cmp).setup { keymap { -- Manually invoke minuet completion. [A-y] require(minuet).make_blink_map(), }, sources { -- Enable minuet for autocomplete default { lsp, path, buffer, snippets, minuet }, -- For manual completion only, remove minuet from default providers { minuet { name minuet, module minuet.blink, score_offset 8, -- Gives minuet higher priority among suggestions }, }, }, -- Recommended to avoid unnecessary request completion { trigger { prefetch_on_insert false } }, }其中score_offset 8按文档注释的作用是为 minuet 的建议提供更高优先级prefetch_on_insert false是文档推荐项用于避免不必要的请求。确认补全是否生效文档没有给出独立的日志或诊断命令验证方式是按上面声明的交互操作补全virtual text 前端补全以虚拟文本形式显示在光标后按A-A接受整段补全、A-a接受一行、A-z后输入行数接受多行、A-[/A-]在补全项间切换、A-e取消。nvim-cmp/blink-cmp前端补全项出现在候选列表中可正常选中接受未自动触发时按绑定的A-y手动调用。插件本身支持流式输出文档说明这让较慢的 LLM 也能完成补全交付因此即使响应较慢补全也会以流式方式逐步出现。限制与后续FIM 补全只适用于文档列出的兼容模型DeepSeek、Codestral、Qwen 等改用 DeepSeek 的聊天接口时走的是openai_compatible路径属于聊天模式补全与 FIM 模式不同。文档未提供针对网络失败、密钥错误的专门排错说明如果长时间没有补全返回可先核对 API key 是否已替换为自己的密钥、所选 provider 与 provider_options 的键是否一致openai_fim_compatible对应openai_fim_compatibleopenai_compatible对应openai_compatible。更多配置项与多语言说明见 minuet-ai.nvim 中文文档 和 英文文档。【免费下载链接】awesome-deepseek-integrationIntegrate the DeepSeek API into popular software项目地址: https://gitcode.com/GitHub_Trending/aw/awesome-deepseek-integration创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表