llama.vim

在 Vim 里跑本地大模型,代码补全不卡顿

llama.vim 是一个专为 Vim/Neovim 打造的 LLM 辅助代码补全插件,它通过本地或远程的 llama.cpp 推理引擎,为开发者提供类似 Copilot 的自动补全体验。该项目解决了在 Vim 生态中缺少轻量、本地优先的 AI 补全方案的问题。其核心能力包括:基于 llama.cpp 的流式补全、支持多模型切换、可自定义提示词模板、以及通过 Vim 原生接口实现无缝集成。它强调隐私和可控性,所有代码数据可留在本地,不依赖云端服务。安装配置简单,适合追求极简编辑环境的开发者。

开源 free 开源模型
访问官网 ↗ GitHub ↗ 文档 ↗
GitHub 星标 ★ 2182
维护状态 活跃
是否开源 是
定价模式 free

项目预览

项目数据

分类开源模型
开发团队ggml-org
所属国家
官网地址
定价模式free
价格说明完全免费,MIT 许可证,本地部署使用
访问状态
是否开源是
开源协议MIT
主要语言Vim Script
技术栈/模型copilot,developer-tool,llama,llm,vim,vim-plugin
GitHub 星标★ 2182
30天Star增速
HF 下载量
上线时间2024-10-28 00:00:00
代码更新—
仓库体积—
本站数据更新—
维护状态活跃
中文支持
访问方式
移动端支持
综合评分
收录时间2026-08-09
浏览次数4

Star 增长趋势

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

正在加载星标数据…

技术标签

使用教程

—

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

环境要求

  • Vim 或 Neovim 编辑器环境
  • 已按所选插件管理器(vim-plug / Vundle / lazy.nvim)完成插件加载
  • 需要有一个 llama.cpp 服务实例运行在 g:llama_config.endpoint_fim 和/或 endpoint_inst 指定的地址
  • 本地或局域网内可访问的推理服务器(如 README 示例中的 http://192.168.0.66:8080)

安装与启动步骤

  1. 1vim-plug 声明插件

    在 .vimrc 中通过 vim-plug 声明 llama.vim,随后重新加载配置使插件生效。

    Plug 'ggml-org/llama.vim'
  2. 2Vundle 手动克隆

    进入 Vundle 的 bundle 目录克隆仓库,再把 Plugin 'llama.vim' 加入 .vimrc 的 vundle#begin() 区段。

    cd ~/.vim/bundle
    git clone https://github.com/ggml-org/llama.vim
  3. 3lazy.nvim 声明插件

    在 lazy.nvim 的插件列表中按此格式加入 llama.vim 的规格表。

    {
        'ggml-org/llama.vim',
    }
  4. 4设置基础配置变量

    通过 g:llama_config 定制插件行为,该变量需写在 llama.vim 加载之前;也可直接赋值单个字段。

    let g:llama_config = { 'show_info': 0 }
  5. 5配置 FIM 快捷键

    按需修改补全触发与接受按键,accept_full 为接受整段建议,accept_line 为只接受首行。

    let g:llama_config.keymap_fim_trigger     = "llf"
    let g:llama_config.keymap_fim_accept_full = ""
    let g:llama_config.keymap_fim_accept_line = ""
    let g:llama_config.keymap_fim_accept_word = "ll]"
  6. 6配置指令编辑快捷键

    设置基于指令的编辑(instruction-based editing)相关按键,包括触发、重跑、续写、接受与取消。

    let g:llama_config.keymap_inst_trigger  = "lli"
    let g:llama_config.keymap_inst_rerun    = "llr"
    let g:llama_config.keymap_inst_continue = "llc"
    let g:llama_config.keymap_inst_accept   = ""
    let g:llama_config.keymap_inst_cancel   = ""
  7. 7配置命名服务器

    用 profiles 定义多个 llama.cpp 服务器地址并用 profile 指定当前使用的服务器;该配置只能指定主机,不能指定模型。

    let g:llama_config.profiles = {
         'spark':   'http://192.168.0.66:8080',
         'gmktec':  'http://192.168.0.65:8080',
         }
    let g:llama_config.profile = 'spark'
  8. 8准备 llama.cpp 服务

    插件要求 llama.cpp 服务实例运行在 endpoint_fim 和/或 endpoint_inst 地址上;README 未给出启动命令,请参考 llama.cpp 官方文档自行启动。

关键配置

配置项必填说明示例
endpoint_fim是FIM 代码补全请求所指向的 llama.cpp 服务地址http://192.168.0.66:8080
endpoint_inst是指令式编辑请求所指向的 llama.cpp 服务地址http://192.168.0.65:8080
profiles否命名服务器列表,仅能指定主机地址,不能指定模型{'spark': 'http://192.168.0.66:8080'}
profile否当前选中的服务器 profile 名称,切换后对 FIM 与指令请求同时生效spark
model_fim否FIM 补全使用的模型名,需与服务器端配置一致fim_model
model_inst否指令式编辑使用的模型名,需与服务器端配置一致inst_model

如何确认成功

在插入模式下移动光标应自动出现补全建议,按 Tab 可接受;执行 :LlamaProfile 能列出可用服务器 profile。

常见问题

Q:如何在多个 llama.cpp 服务器之间切换?

A:执行 :LlamaProfile 查看可用 profile,用 :LlamaProfile spark 切换到指定服务器,FIM 与指令请求会同时切换;profile 名称支持命令行补全。

Q:怎么恢复到 .vimrc 里配置的服务器?

A:执行 :LlamaProfileReset 即可恢复 .vimrc 中配置的 profile 或自定义 endpoint。选中的 profile 会被持久化保存。

Q:如何关闭自动 FIM 补全或内联信息?

A:设置 auto_fim = false 可关闭自动 FIM 补全(lazy.nvim 中可在 init 里设置),设置 show_info = 0 可关闭内联显示。

Q:切换 profile 能改变使用的模型吗?

A:不能。profile 只能指定主机服务器,模型由 model_fim 和 model_inst 决定;可在各服务器上使用一致的模型命名或别名来规避差异。

注意事项

  • README 中未提供 llama.cpp 服务的启动命令、端口与模型下载方式,需要自行按其官方文档部署并保证 endpoint 可达。
  • g:llama_config 需写在 llama.vim 加载之前才生效,lazy.nvim 中应放在 init 函数里。
  • profile 切换会被持久化,调试完可用 :LlamaProfileReset 恢复 .vimrc 中的配置。
  • 完整的配置项清单可查阅 :help llama_config 或仓库源码 autoload/llama.vim。

核心亮点

  • 本地推理,代码不出本机,隐私安全
  • 与 Vim/Neovim 原生集成,无需额外插件依赖
  • 支持多种 llama.cpp 模型,灵活切换

不足之处

  • 需要用户自行配置模型和推理服务,上手门槛较高
  • 补全速度受限于本地硬件,不如云端方案快

适用场景

  • 离线或内网环境下的代码补全
  • 注重代码隐私的开发者日常编辑
  • 在 Vim 中体验 AI 辅助编程的极简工作流

替代项目

Copilot.vim、tabnine-vim、codeium.vim

项目介绍

llama.vim 是编程开发领域的开源项目,由 ggml-org 开发,2024 年首次发布。

在全站 13,635 个收录项目中,它的 GitHub 星标数(2,182)位列前 30%,在编程开发分类中处于中上游。

近 44 天,它的 GitHub 星标从 2,147 增加到 2,182,净增 35。

项目目前处于活跃维护状态,最近一次代码更新于 2026-09-29。完全免费,MIT 许可证,本地部署使用。

它主要面向的使用场景是:离线或内网环境下的代码补全。同类可对比的替代方案包括 Copilot.vim、tabnine-vim、codeium.vim。

上一篇:code-interpreter

下一篇:Agentless

同类项目推荐

bolt.new 开源

想到啥说啥,网页应用当场生成直接能用

Prompt, run, edit, and deploy full-stack web applications. -- bolt.new -- Help Cente···

★ 16572 2026-08-09
fuzz4all 开源

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

️Fuzz4All: Universal Fuzzing with Large Language Models

★ 338 2026-08-09
ponytail 开源

教 AI 学会偷懒,不写代码反而更快交付

Makes your AI agent think like the laziest senior dev in the room. The best code is ···

★ 153669 2026-08-09
pi-agent-desktop 开源

下载即用的桌面 AI 编程助手,免配置免命令行

Pi — A cross-platform AI coding agent, bringing the Claude Code experience to your ···

★ 475 2026-09-25