avante.nvim 深度研究:把 Neovim 用成 Cursor 的那块拼图

深度研究:avante.nvim —— 把 Neovim 用成 Cursor 的那块拼图

目录
  1. 一、它到底是什么
  2. 二、能干什么(具体点)
  3. 三、它怎么转起来的
  4. 四、装它(命令别抄错)
  5. 五、配置里几个坑位
  6. 六、跟 Copilot、Cody 比,差在哪
  7. 七、谁该用,谁先别碰
  8. 八、一句话收口
文本版 · 供搜索与朗读

深度研究:avante.nvim —— 把 Neovim 用成 Cursor 的那块拼图

先说句实话。你用 Neovim,又馋 Cursor 那种'聊着天就把代码改了'的体验,怎么办?要么硬切 IDE,要么在终端里自己攒一套。avante.nvim 干的就是第二件事——它不另起炉灶,就寄生在你的 Neovim 里,把 AI 编辑流塞进原生窗口。

一、它到底是什么

仓库是 avante-corp/avante.nvim,最早是 yetone 在维护,后来归到组织名下。一句话定位:'Use your Neovim like using Cursor AI IDE!' 模拟 Cursor,不模仿 VSCode。

底线要求:Neovim 0.11.0 起步。README 里专门拿 Important 标了,徽章写的是 0.10+,但文字咬死 0.11.0+。别拿老版本硬试,会卡。

协议:Apache 2.0。商用、改、分发给钱都行,只要你保留声明。它自己致谢里也点名了 aider、ChatGPT.nvim(都是 Apache 2.0),copilot.lua、img-clip.nvim 是 MIT。

二、能干什么(具体点)

- 对着当前文件提问,AI 给改进/修改建议。不是补全那点事,是真能改。 - 一键 apply。一条命令把建议直接写回源文件,diff 在侧边栏,你逐块确认。 - 项目级指令。根目录丢个 avante.md(文件名可改),自动当上下文塞进去。等于给 AI 一本项目说明书。 - Zen Mode。一个 alias 把它伪装成 Coding Agent CLI,但底下还是 Neovim:

alias avante='nvim -c "lua vim.defer_fn(function()require(\"avante.api\").zen_mode()end, 100)"'

Vibe Coding 的时候,别人以为你在跑 agent,你其实在敲 Vim。

- Fast Apply。接 Morph 专用模型,标称 2500–4500+ tok/s、96–98% 准确率,传统 LLM 慢吞吞 apply 那一下被它补上了。 - ACP(Agent Client Protocol)。能直接驱动 codex、gemini、claude-code 这些 CLI agent。 - RAG 服务。默认关着,要 Docker 或 Nix 跑,专啃项目上下文。 - Web 搜索。内置 Tavily、SerpApi、Google、Kagi、Brave、SearXNG,六选一。 - 自定义工具 / MCP。支持 custom_tools,还能接 mcphub.nvim。 - 补全源花样多。@ 提及(@codebase、@file…)、/ 斜杠命令(/init、/commit…)、# 模板。

最值得拎出来的是 dual_boost——实验性的,把两个提供商的输出并一块儿。听着玄,实则是'双模型投票'。

三、它怎么转起来的

两种交互模式,默认 agentic:

- agentic:AI 自己调工具(文件操作、bash、web),生成并改代码。放手让它干。 - legacy:只给计划/建议,你手动确认。保守、可控。

Provider 是抽象的。支持 claude、openai、azure、gemini、cohere、copilot、ollama…… 一张 providers 表搞定 endpoint / model / api_key。

提示词模板走 Jinja 风格的 *.avanterules 文件(minijinja 渲染),分 planning/editing/suggesting/cursor-planning 几种模式。想调 AI 的脾气,改这套规则文件就行。

RAG 是个独立 Python 服务(py/rag-service),LLM 和 embed 模型分开配,Docker 把 host_mount(默认 $HOME)挂成只读。它不碰你本地写的别的东西。

UI 全是 Neovim 原生窗口,默认右侧、宽 30 列。apply diff 用 co/ct/ca 那套键位。底下 Rust 部分要么 cargo 编译,要么 curl+tar 拉预编译,仓库里 Build.ps1、build.sh、Makefile、flake.nix 都备着。

四、装它(命令别抄错)

lazy.nvim 是正路:

{ "yetone/avante.nvim", build = vim.fn.has("win32") ~= 0 and "powershell -ExecutionPolicy Bypass -File Build.ps1 -BuildFromSource false" or "make", event = "VeryLazy", version = false, opts = { instructions_file = "avante.md", provider = "claude" }, dependencies = { "nvim-lua/plenary.nvim", "MunifTanjim/nui.nvim", ... } }

Windows 那段 Build.ps1 记得开着,别漏。

vim-plug 也行:Plug 'yetone/avante.nvim', { 'branch': 'main', 'do': 'make' }。

还有 rocks.nvim(:Rocks install avante.nvim 后 require('avante').setup())、Nix(Home Manager / Nixvim 里 plugins.avante.enable = true)、以及 Neovim 0.12+ 的 vim.pack.add。

五、配置里几个坑位

API Key 建议加 AVANTE_ 前缀隔离,别和别的服务混:

export AVANTE_ANTHROPIC_API_KEY=...

也能用全局 ANTHROPIC_API_KEY,但混着用迟早出事。

一个典型 setup:

require("avante").setup({ provider = "claude", mode = "agentic", auto_suggestions_provider = "claude", behaviour = { auto_suggestions = false, auto_approve_tool_permissions = true }, windows = { position = "right", width = 30 }, mappings = { sidebar = { apply_all = "A" }, suggestion = { accept = "<M-l>" } }, })

auto_approve_tool_permissions = true 这行要当心——它让 AI 自己批工具权限。爽是爽,安全边界你得自己掂量。

Claude Pro/Max 登录走 auth_type = "max",弹浏览器 OAuth。

开 Fast Apply:

behaviour = { enable_fastapply = true } providers = { morph = { model = "morph-v3-large" } }

不想要某些工具?disable_tools = true 全关,或 disabled_tools = { "python" } 单挑。

输入/选择器能换皮:input.provider = "snacks"、selector.provider = "fzf"。

RAG 真要开:

rag_service = { enabled = true, runner = "docker" }

改完记得 docker rm -fv avante-rag-service,否则旧容器赖着不走。

六、跟 Copilot、Cody 比,差在哪

Copilot 在它的依赖里是被点名的——zbirenbaum/copilot.lua 能当 providers = 'copilot' 后端。但关系要搞清楚:avante 是宿主环境(Neovim),Copilot 是被它接进来的服务,不是平级对手。

Cody(Sourcegraph)它压根没提。差别在气质:avante 要的是类 Cursor 的 Tab 流、差异应用、Zen Mode;Cody 多半是编辑器侧栏聊天那一路。

硬事实层面的三点差异:

1. Fast Apply(Morph) 补了传统 LLM apply 慢的洞。 2. ACP 直接驱 claude-code / codex 这类 CLI agent。 3. RAG + Web 搜索内置,Copilot 免费版没这开放度。

还有一条——所有 UI 都是 Neovim 原生窗口,能复用你已有的 telescope、snacks 之类。这点对 Vim 党是致命诱惑。

七、谁该用,谁先别碰

该用的:

- 死守 Neovim,又想要 Cursor 那套'聊天改代码'(AvanteAsk / AvanteChat)。 - 用 avante.md 给 AI 立项目规矩。 - 大重构,侧边栏 diff 解决冲突(co/ct/cb)。 - 隐私/离线场景,Ollama 是一等公民(provider = "ollama")。 - 企业敏感环境,legacy 模式 + disabled_tools 卡住自动执行。

先别碰的:

- Neovim 还停在 0.10 及以下的,先升级。 - 怕 AI 乱跑文件的,auto_approve_tool_permissions 别开,legacy 模式保平安。

八、一句话收口

avante.nvim 不是又一个聊天插件。它把 Cursor 的编辑流硬嵌进 Neovim 原生窗口,又给了你 Provider 抽象、ACP、RAG、Fast Apply 这一整套开关。代价是要自己配、自己担风险。Vim 党想'既要又要',它目前是最像答案的那个。
本文由步子哥整理 · 去AI味改写 · 2026-08-21

暂无表态

想参与讨论或点赞?登录后使用完整功能

讨论回复(1)

Q

读完 avante.nvim 深度研究,补几条:

1.「寄生在 Neovim」不是技术选型,是产品定位。

Cursor 的故事是"另起 IDE",Copilot 的故事是"占 IDE 一格",avante 偏偏要把 AI 编辑流塞进原生窗口。所有 Vim 党已有的 telescope/snacks/which-key 全部照常,唯一改的是新增 side pane 30 列。代价是要自己配、自己担风险;收益是它从来不与 Neovim 生态任何一块抢位。这是它在 GitHub 长期占据 50k+ stars 的根。

2.Fast Apply(Morph 2500-4500 tok/s)补的那一刀要害。

原帖说「传统 LLM apply 慢」一笔带过,但 2500 tok/s 意味着 apply 一次大文件从十几秒压到秒级——这是「能 vibe coding」与「能用 vibe coding」的分界线。Cursor 敢推 Apply 全自动,是因为底层有 Rapid Apply 类似的方案;avante 接 Morph 等于把这条护城河平等分配给 Vim 党。

3.dual_boost 被「experimental」标签埋没了。

双模型投票的真正意义,是目前最便宜的"模型一致性"评估器:同一段代码让两家 provider 跑,再合一屏让用户挑哪段写得更对。比 RLAIF、Arena 都轻,能被 vim 党三日复刻。贴个 experimental 标签把这条路埋了,亏。

4.ACP 这条线讲浅了。

它的真价值是 avante 不再做脑子——它只做"喂 CLI agent 上下文 + 套 UI"的中介。codex、gemini、claude-code 这些 CLI 本来就有吸星大法式的工具调用,avante 把它们塞进 Neovim 侧栏。这意味着 avante 跟着 CLI agent 一同进退:Claude Code 4-day 4-version 那种动荡,avante 不需要重写底层就能跟上。

下一根最该盯的钉子:avante 啥时候把 BeamIdx + KV-Cache 那套 OpenVINO 间接缓存融合方式(参 pipeline sharded inference 论文 2608.19147)用作本地补全的默认加速。同款「间接复用 AI PC 闲置显存」叙事,将是 avante 把"Neovim 即 AI 编程工具"这条线做深的真正支点。

#avante.nvim #Vim #Cursor #FastApply #ACP

暂无表态
合作

智谱 GLM-5 已上线

在智谱开放平台 BigModel.cn 打造 AI 应用。新一代旗舰模型 GLM-5 在推理、代码、智能体综合能力达到开源模型 SOTA。

领取 2000万 Tokens