minuet-ai.nvim

在 Neovim 里边写边补全,多家大模型随你换

开源 🏷️完全免费 🔧 仅开源项目,无在线服务,需自行部署 编程开发 🍴 复刻 69 🐛 待处理 14 👀 关注 9
GitHub ↗
GitHub 星标 ★ 1436
维护状态 较活跃
是否开源 开源
定价模式 🏷️完全免费 开源免费,需自备 LLM API 密钥

项目预览

minuet-ai.nvim 项目界面预览图
图片来源:GitHub 官方仓库名片

项目数据

分类编程开发
开发团队milanglacier
定价模式🏷️完全免费
价格说明开源免费,需自备 LLM API 密钥
访问状态🔧 仅开源项目,无在线服务,需自行部署
是否开源是
开源协议GPL-3.0
主要语言Lua
技术栈/模型ai,code-completion,llm,neovim,neovim-plugin
GitHub 星标★ 1436
上线时间2024-07-20 00:00:00
代码更新2026-10-07
仓库体积1.0 MB
本站数据更新2026-10-29
维护状态较活跃
收录时间2026-10-29
浏览次数0

项目介绍

minuet-ai.nvim 是一个为 Neovim 打造的 AI 代码补全插件,核心目标是在编辑器内提供流畅的「边输入边补全」体验。它把多家主流大模型服务统一接入到 Neovim 的补全流程中,支持 OpenAI、Gemini、Claude、Codestral 等云端模型,也支持 Ollama、Llama.cpp 等本地推理后端,用户可按需切换。插件以 Lua 编写,贴合 Neovim 生态,提供异步请求与虚拟文本展示,避免阻塞编辑操作;同时支持自定义提示词、上下文拼装与多 provider 配置,便于按项目或语言调整补全策略。相比通用补全引擎,它更聚焦于大模型驱动的整段代码建议,适合希望在 Vim 工作流中引入 AI 辅助、又不想切换到重型 IDE 的开发者。项目星标约 1.4k,处于成长阶段,配置项较丰富,需要一定 Neovim 配置经验。

Star 增长趋势

本站每日记录该项目 GitHub 星标变化,观测越久曲线越完整

数据来源:GitHub API 逐日快照 · 收录于 2026-10-29 · 当前星标 ★ 1436

技术标签

使用教程

ℹ 本教程由 AI 依据该项目 README 整理,个别步骤可能需要按你的环境微调。

难度:进阶 约 10 分钟 部署方式:本地安装 7 步

环境要求

  • 已安装 Neovim
  • 已安装 lazy.nvim 或 Rocks.nvim 插件管理器
  • 可选安装 nvim-cmp 或 blink.cmp 作为补全菜单前端
  • 准备所选 LLM 服务商的 API key,或本地 Ollama / Llama.cpp 服务
  • 能够编辑 Neovim 的 Lua 配置文件

安装与启动步骤

  1. 1准备插件管理器

    README 提供 lazy.nvim 和 Rocks.nvim 两种安装方式,先确认你的 Neovim 已使用其中一种管理插件。

  2. 2lazy.nvim 安装

    在 lazy.nvim 的 specs 中加入插件,并在 config 中调用 setup 写入配置。

    specs = {
        {
            'milanglacier/minuet-ai.nvim',
            config = function()
                require('minuet').setup {
                    -- Your configuration options here
                }
            end,
        },
        { 'hrsh7th/nvim-cmp' },
        { 'Saghen/blink.cmp' },
    }
  3. 3Rocks.nvim 安装

    如果使用 Rocks.nvim,可直接从 luarocks.org 安装该插件。

    Rocks install minuet-ai.nvim
  4. 4配置 Provider

    在 setup 中通过 provider 选择默认服务商,并按对应服务商要求提供 API key 或本地服务地址。

  5. 5配置虚拟文本前端

    使用虚拟文本前端时设置 auto_trigger_ft 和键位;accept 接受整段,accept_line 接受一行。

    require('minuet').setup {
        virtualtext = {
            auto_trigger_ft = {},
            keymap = {
                accept = '',
                accept_line = '',
                accept_n_lines = '',
                prev = '',
                next = '',
                dismiss = '',
            },
        },
    }
  6. 6集成 nvim-cmp

    把 minuet 加入 cmp 源,并适当提高 fetching_timeout 以适应 LLM 响应速度。

    require('cmp').setup {
        sources = {
            {
                { name = 'minuet' },
            }
        },
        performance = {
            fetching_timeout = 2000,
        },
    }
    
    require('cmp').setup {
        mapping = {
            [""] = require('minuet').make_cmp_map()
        },
    }
  7. 7集成 blink-cmp

    在 blink 的 sources 和 providers 中启用 minuet,并设置手动触发键位。

    require('blink-cmp').setup {
        keymap = {
            [''] = require('minuet').make_blink_map(),
        },
        sources = {
            default = { 'lsp', 'path', 'buffer', 'snippets', 'minuet' },
            providers = {
                minuet = {
                    name = 'minuet',
                    module = 'minuet.blink',
                    async = true,
                    timeout_ms = 3000,
                    score_offset = 50,
                },
            },
        },
        completion = { trigger = { prefetch_on_insert = false } },
    }

关键配置

配置项必填说明示例
provider是选择默认 LLM 服务商,如 codestral、openai、gemini、claude、ollama、llama.cpp。'codestral'
context_window否光标前后上下文总字符上限,16000 约等于 4000 tokens。16000
throttle否请求节流间隔,单位毫秒;设为 0 可关闭节流。1000
debounce否请求防抖时间,单位毫秒;设为 0 可关闭防抖。400
virtualtext.keymap.accept否虚拟文本前端中接受整段补全的键位。''
cmp.enable_auto_complete否控制 nvim-cmp 中 minuet 是否参与自动补全。true

如何确认成功

打开 Neovim,在 auto_trigger_ft 包含的文件类型中输入代码,出现虚拟文本或补全项即表示生效。

常见问题

Q:自动补全没有触发怎么办?

A:检查 virtualtext.auto_trigger_ft 是否包含当前文件类型;使用 cmp/blink 时确认源中已加入 minuet 且自动补全开关为 true。

Q:cmp/blink 中补全响应很慢怎么办?

A:LLM 响应通常比普通补全慢。可提高 cmp 的 fetching_timeout,或让 blink 的 timeout_ms 与 minuet.request_timeout 匹配。

Q:如何手动触发补全?

A:nvim-cmp 使用 make_cmp_map(),blink 使用 make_blink_map() 绑定键位;虚拟文本前端可用 next/prev 键手动调用。

Q:可以同时启用多种前端吗?

A:README 建议按需选择一种前端。LSP completion 与 inline completion 同时开启时会有警告,虚拟文本与 LSP inline completion 同时使用也会有提示。

注意事项

  • context_window 为光标前后总字符数,16000 字符约等于 4000 tokens。
  • throttle 和 debounce 控制请求频率,可按机器与网络情况调整。
  • 本地 Ollama、Llama.cpp 后端与云端服务商可切换,具体模型名和地址以 README 对应 Provider 示例为准。
  • README 未给出 Neovim 最低版本和 API key 的具体设置命令,请以官方 Requirements 与 API Keys 章节为准。

核心亮点

  • 统一接入 OpenAI、Gemini、Claude、Codestral 及 Ollama、Llama.cpp 等多种后端,切换 provider 只需改配置
  • 异步请求配合虚拟文本渲染,补全建议不阻塞正常编辑操作
  • 用 Lua 编写,与 Neovim 原生补全和配置体系贴合,可自定义提示词与上下文拼装

不足之处

  • 需要自行配置 API Key、模型名与 provider 参数,对新手有一定门槛
  • 依赖外部模型服务的延迟与稳定性,网络或本地模型性能会直接影响补全体验

适用场景

  • Neovim 用户在写代码时希望获得整段函数级 AI 补全建议
  • 团队希望用本地 Ollama 或 Llama.cpp 模型做代码补全以控制数据外流
  • 开发者需要在同一编辑器内对比不同大模型的补全效果

替代项目

codeium.nvim、cmp-ai、copilot.lua

上一篇:code2prompt

下一篇:没有了!

同类项目推荐

agent-skills 开源

让 AI 助手秒变 WordPress 开发专家,少踩坑

Expert-level WordPress knowledge for AI coding assistants - blocks, themes, plugins,···

★ 2309 2026-09-13
crystal 开源

多个 AI 同时写不同功能,互不干扰齐头并进。

(Crystal is now Nimbalyst) Run multiple Codex and Claude Code AI sessions in paralle···

★ 3130 2026-08-09
builder 开源

说句话就生成网站和应用,开源自部署版 Lovable

✨ AI Builder For Creating Sites and Apps! An open-source alternative to Lovable, Re···

★ 308 2026-10-18
ai-code-helper 开源

跟着实战学 AI 编程,从入门到企业级应用开发

2025 年 AI 编程助手实战项目(作者:程序员鱼皮),基于 Spring Boot 3.5 + Java 21 + La···

★ 762 2026-08-09
bitbucket-cli 开源

在终端里像用 gh 一样操作 Bitbucket,还能让 AI 帮你干活。

Bitbucket CLI with gh-like ergonomics

★ 247 2026-08-09
AI-Codereview-Gitlab 开源

接入大模型,让 GitLab 代码审查自动跑起来,结果直达钉钉/飞书。

基于大模型(DeepSeek,OpenAI等)的 GitLab 自动代码审查工具;支持钉钉/企业微信/飞书推送消···

★ 1868 2026-08-09
scafoldr 开源

用对话生成项目骨架,替代 v0 和 Lovable

Building an open-source alternative to v0 and Lovable.

★ 64 2026-08-09
gptstudio 开源

在 RStudio 里直接用 GPT 写代码、改 bug、写文档

GPT RStudio addins that enable GPT assisted coding, writing & analysis

★ 989 2026-08-09
rtl-for-vs-code-agents 开源

让阿拉伯语/希伯来语开发者用 Copilot 时文字和代码都不乱

Native-like RTL support for VS Code AI Agents (i.e. GitHub Copilot) with proper LTR ···

★ 126 2026-09-15