llm.nvim

在 Neovim 里直接调 LLM 写代码、改代码、问代码

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

项目预览

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

项目数据

分类编程开发
开发团队huggingface
定价模式🏷️完全免费
价格说明开源免费插件,需自备 LLM API
访问状态🔧 仅开源项目,无在线服务,需自行部署
是否开源是
开源协议Apache-2.0
主要语言Lua
技术栈/模型lua,neovim,neovim-plugin
GitHub 星标★ 1195
上线时间2023-05-07 00:00:00
代码更新2026-11-06
仓库体积18.0 MB
本站数据更新2026-11-10
维护状态活跃
收录时间2026-09-26
浏览次数1

项目介绍

llm.nvim 是一个为 Neovim 打造的 LLM 辅助开发插件,用 Lua 编写。它把大模型能力直接嵌入编辑器工作流,让开发者无需离开 Neovim 就能完成代码生成、解释、重构和问答。插件支持接入多种 LLM 后端(如 OpenAI、Ollama 等),提供可配置的提示词模板,并能把选中代码或当前缓冲区内容作为上下文发送给模型,结果以浮动窗口或直接插入的方式返回。它解决的是在终端编辑器里频繁切换浏览器或外部聊天工具的问题,把 AI 对话、代码补全和批量编辑统一到键盘操作中。核心能力包括:可视化选择范围后发起请求、流式输出、自定义快捷键与命令、多模型切换,以及把 AI 返回的代码块直接写回文件。对于习惯 Neovim 的开发者,它相当于把 Copilot 式体验和 ChatGPT 式对话整合进一个轻量插件。

Star 增长趋势

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

数据来源:GitHub API 逐日快照 · 收录于 2026-09-26 · 当前星标 ★ 1195

技术标签

使用教程

⚠ 本教程由 AI 依据该项目 README 整理;原始文档不完整,部分步骤为通用流程推断,实际安装请以项目官方文档为准。

难度:入门 约 10 分钟 部署方式:本地安装 5 步

⚠ 该项目 README 未提供完整安装说明,以下步骤为通用流程,请以官方文档为准。

环境要求

  • 已安装 Neovim,并已配置好一个插件管理器
  • 可用的 LLM 后端:Hugging Face Inference API,或自建且符合 backend 规范的 HTTP endpoint
  • 使用 Inference API 时需要 Hugging Face API token
  • 网络可访问所配置的后端 HTTP 地址

安装与启动步骤

  1. 1安装插件本体

    README 未给出具体插件管理器命令,可先把仓库克隆到 Neovim 插件目录;路径按自己的插件管理器调整。

    git clone https://github.com/huggingface/llm.nvim.git /your/path/site/pack/plugins/start/llm.nvim
  2. 2确定后端与凭证

    插件通过 HTTP 请求调用后端,需要用 require('llm').setup 配置 backend、model 和 api_token。

  3. 3写入 setup 配置

    在 Neovim 配置文件中加入 llm.setup,README 给出的字段可原样使用,按需修改 model 与 backend。

    local llm = require('llm')
    
    llm.setup({
      api_token = "sk-xxxxxxxx",
      model = "bigcode/starcoder2-15b",
      backend = "huggingface",
      url = nil,
      tokens_to_clear = { "<|endoftext|>" },
      request_body = {
        parameters = {
          max_new_tokens = 60,
          temperature = 0.2,
          top_p = 0.95,
        },
      },
      fim = {
        enabled = true,
        prefix = "<fim_prefix>",
        middle = "<fim_middle>",
        suffix = "<fim_suffix>",
      },
      debounce_ms = 150,
      accept_keymap = "<Tab>",
      dismiss_keymap = "<S-Tab>",
      tls_skip_verify_insecure = false,
      lsp = {
        bin_path = nil,
        host = nil,
        port = nil,
        cmd_env = nil,
        version = "0.5.3",
      },
      tokenizer = nil,
      context_window = 1024,
      enable_suggestions_on_startup = true,
      enable_suggestions_on_files = "*",
      disable_url_path_completion = false,
    })
  4. 4按需覆盖后端地址

    不想在配置里写死 url 时,可用环境变量 LLM_NVIM_URL 覆盖后端地址;url 为 nil 则走默认 Inference API 地址。

    export LLM_NVIM_URL=https://your-endpoint.example.com
  5. 5重启 Neovim 验证

    保存配置后重启 Neovim,编辑文件时观察是否出现补全提示,并用 Tab / Shift-Tab 接受或忽略。

关键配置

配置项必填说明示例
api_token是调用后端所需的 API 令牌,使用 Inference API 时必填sk-xxxxxxxx
model是模型 ID,具体行为取决于所选后端bigcode/starcoder2-15b
backend是后端类型,可选 huggingface / ollama / openai / tgihuggingface
url否后端 HTTP 地址,为 nil 时使用 Inference API 默认地址https://your-endpoint.example.com
lsp.version否llm-ls 后端版本,插件以 llm-ls 作为后端0.5.3
context_window否上下文窗口的最大 token 数,提示词会自动裁剪到该范围1024

如何确认成功

重启 Neovim 后在文件中输入代码,若出现灰色 ghost-text 补全提示,说明插件与后端已连通。

常见问题

Q:提示被限流(rate limited)怎么办?

A:README 说明使用 Inference API 时可能遇到限制,免费额度容易被限流,可订阅 PRO 计划避免。

Q:能换成自己的模型或本地模型吗?

A:可以,把 backend 改为 ollama、openai 或 tgi,并设置对应的 model 与 url 即可。

Q:输出里带特殊标记怎么处理?

A:用 tokens_to_clear 指定要从模型输出中移除的 token,例如 <|endoftext|>。

Q:如何调整补全的触发与接受方式?

A:通过 debounce_ms 控制触发延迟,accept_keymap 与 dismiss_keymap 分别设置接受和忽略的按键。

注意事项

  • README 未提供具体的插件管理器安装示例,第一条命令中的 /your/path 需替换为自己实际的 Neovim 插件目录。
  • 免费版 Inference API 存在调用限制,正式使用建议订阅 PRO 计划。
  • url 留空(nil)时会回落到 Inference API 的默认地址,也可用环境变量 LLM_NVIM_URL 覆盖。

核心亮点

  • 纯 Lua 实现,与 Neovim 原生集成,启动和响应轻量
  • 支持多后端和多模型切换,不绑定单一厂商
  • 可把选中代码作为上下文,AI 返回结果能直接写回缓冲区

不足之处

  • 功能相对早期,缺少类似 Copilot 的实时行内补全
  • 配置项较多,新手需要一定时间调通后端和快捷键

适用场景

  • 在 Neovim 中选中一段函数让 AI 解释或重构
  • 写代码时直接向 LLM 提问并插入生成的代码块
  • 用自定义提示词批量修改当前文件中的重复模式

替代项目

codeium.nvim、copilot.vim

上一篇:llm-vscode

下一篇:pi-jev

同类项目推荐

iphone-duo-skills 开源

让 AI 代理写出适配折叠屏 iPhone 的 iOS 代码

Agent skills for building iOS apps on iPhone Duo, Apple's first foldable iPhone — a···

★ 307 2026-10-30
fuzz4all 开源

用大模型自动生成测试输入,发现各种软件漏洞

️Fuzz4All: Universal Fuzzing with Large Language Models

★ 340 2026-08-09
deepseek-harness-desktop 开源

把 DeepSeek 编码代理装进桌面,手机还能远程看

Compact DeepSeek Harness desktop host with a native SwiftUI iPhone Remote source pre···

★ 286 2026-10-18
project-butler 开源

给 AI 编程助手装上项目记忆,告别每次从零开始

Project memory system for AI coding assistants (Claude Code, Cursor, Codex): session···

★ 375 2026-08-09
lacp 开源

给本地 AI 编码代理装上策略、记忆和回滚开关

Local-first policy, evidence, memory, and recovery controls for Claude, Codex, Herme···

★ 309 2026-10-06
untether 开源

手机遥控 AI 编程,用 Telegram 随时下发任务、审批操作

Run your coding agents from Telegram. A bridge for Claude Code, Codex, OpenCode, Pi ···

★ 77 2026-08-09
PokeTokenBar 开源

把 AI 令牌消耗变成宝可梦养成游戏,边写代码边收集精灵

Use your tokens to raise, evolve, and collect Pokémon!

★ 562 2026-08-09
docs-governance 开源

给 AI 编程代理加文档护栏,防文档腐烂、留决策证据

Claude Code、Codex 与 ChatGPT 的文档驱动开发治理插件:防文档腐烂、维护上下文与决策、···

★ 326 2026-10-30
super-dev 开源

给 AI 编程装上工程护栏,让生成代码可控可追溯

Engineering workflow layer for AI coding tools with specs, review, quality gates, an···

★ 280 2026-08-09