avante-corp/avante.nvim

Use your Neovim like using Cursor AI IDE!

avante.nvim – Neovim 内的 AI 辅助编码

是什么

  • 一个将 Cursor AI IDE 的体验直接带入编辑器的 Neovim 插件。它允许你与 LLM 对话,请求代码改进,并通过单个命令应用建议的更改。

如何工作

  • 插件与一个(或多个)LLM 提供商(如 Anthropic 的 Claude、OpenAI、Gemini、Moonshot 等)通信。提供者、模型、端点和请求参数可在 setup() 调用中配置。
  • 当你打开一个 聊天窗口 时,Avante 会发送当前缓冲区(或选定区域)以及你在仓库根目录的 avante.md 文件中放置的任何项目特定指令。模型返回一个代码块,Avante 可以:
    1. 在 Neovim 内以 Markdown 形式显示,以及
    2. 自动应用到文件中(基于差分,可选最小化未更改行)。
  • 特殊的 Zen 模式 允许你作为独立 CLI(avante)运行 Avante,同时仍使用 Neovim 的全部功能作为后端。

主要功能

  • AI 驱动的代码辅助 – 询问你正在编辑的文件,获得具体建议。
  • 一键应用 – 接受建议,Avante 会自动重写缓冲区。
  • 项目特定指令文件 (avante.md) – 定义 AI 的角色、使命、技术栈、编码标准等,使模型能根据你的代码库定制建议。
  • 多提供者支持 & 双重增强模式 – 可配置多个后端;实验性模式可同时查询两个提供者并合并输出。
  • 自动建议(可选) – 插件可在你输入时在后台请求建议。
  • ACP(AI-Code-Planner)支持 – 工具可自动编辑文件、跟踪位置并批准权限。
  • 提示日志 – 将每次请求/响应保存到磁盘,用于回放或调试。
  • 可扩展 UI – 与任何识别 Avante 文件类型的 Markdown 渲染器兼容;支持可选 UI 帮助程序(snacks.nvim、nui.nvim、render-markdown.nvim 等)。

安装

  • 推荐使用 lazy.nvim(或任何其他插件管理器)。make 步骤构建一个小型 Rust 二进制文件(或下载预构建版本)。README 中的示例 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",
        providers = {
          claude = {
            endpoint = "https://api.anthropic.com",
            model = "claude-sonnet-4-20250514",
            timeout = 30000,
            extra_request_body = { temperature = 0.75, max_tokens = 20480 },
          },
        },
      },
      dependencies = { "nvim-lua/plenary.nvim", "MunifTanjim/nui.nvim", ... },
    }
    
  • 其他管理器(Pack、rocks.nvim、vim-plug、mini.deps、Home Manager、Nixvim)也已记录。

基本用法

  1. require('avante').setup{ … } – 可选择性地传入配置。
  2. 使用 :Avante(或 mappings.suggestion 中定义的快捷键)打开聊天。
  3. 输入问题或请求(例如 “将此函数重构为使用 async/await”)。Avante 流式传输模型的响应。
  4. 使用 <M-l>(默认)接受建议,或使用 <C-]> 拒绝。
  5. 更改以差分形式应用;可使用 ]x / [x 导航差分。
  6. 启用 Zen 模式:从 ./contrib/avante 安装帮助脚本,并在终端运行 avante —— 你将获得一个 CLI,仍使用 Neovim 进行渲染。

自定义点

  • 提供者配置 – 选择任何支持的模型,设置温度、最大令牌数、超时等。
  • 行为标志 – 切换自动建议、自动应用差分、令牌计数、自动添加文件等。
  • 快捷键映射 – 所有主要操作(接受、下一个/上一个建议、差分导航、提交、取消)均可重新映射。
  • 提示日志器 – 启用/禁用,更改日志目录,绑定快捷键以浏览前/后日志。
  • 双重增强 – 实验性模式,合并两个提供者的输出。

生态系统与依赖

  • 核心 Lua 代码(plenary.nvimnui.nvim)。
  • 可选 UI 帮助程序:render-markdown.nvimnvim-cmpimg-clip.nvimcopilot.luasnacks.nvimmini.picktelescope.nvimfzf-lua
  • 一个小的 Rust 二进制文件(使用 Cargo 构建)负责与 LLM API 通信的繁重任务。

成熟度

  • 活跃维护中(Lua 和 Rust 测试的 CI 指示灯,README 中有快速迭代说明)。
  • 需要 Neovim 0.11+(0.12+ 以获得完整功能集)。
  • 部分功能标记为 实验性(自动建议、双重增强、ACP 自动批准)。

谁可能受益

  • 大部分时间在 Neovim 中工作,希望在不离开编辑器的情况下获得内联 AI 辅助的开发者。
  • 需要通过 avante.md 强制执行项目特定编码规范的团队。
  • 喜欢 Cursor AI IDE 体验但更倾向于完全开源、自托管工作流的用户。

以上所有信息均直接取自仓库的 README。

写过它的文章

相关

  • 项目
  • 项目
  • 项目
  • 项目
  • 项目