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。

寫過它的文章

相關

  • 專案
  • 專案
  • 專案
  • 專案
  • 專案