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 可以:- 在 Neovim 內以 Markdown 形式顯示,以及
- 自動套用至檔案中(基於差異,可選最小化未變更的行)。
- 特殊的 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)也已記錄。
基本用法
require('avante').setup{ … }– 可選擇性地傳入設定。- 使用
:Avante(或mappings.suggestion中定義的快捷鍵)開啟聊天。 - 輸入問題或請求(例如 「將此函數重構為使用 async/await」)。Avante 流式傳輸模型的回應。
- 使用
<M-l>(預設)接受建議,或使用<C-]>拒絕。 - 變更以差異形式套用;可使用
]x/[x導航差異。 - 啟用 Zen 模式:從
./contrib/avante安裝協助腳本,並在終端執行avante—— 你將獲得一個 CLI,仍使用 Neovim 進行渲染。
自訂點
- 提供者設定 – 選擇任何支援的模型,設定溫度、最大令牌數、超時等。
- 行為旗標 – 切換自動建議、自動套用差異、令牌計數、自動新增檔案等。
- 快捷鍵對應 – 所有主要操作(接受、下一個/上一個建議、差異導航、提交、取消)均可重新對應。
- 提示日誌器 – 啟用/停用,變更日誌目錄,繫結快捷鍵以瀏覽前/後日誌。
- 雙重增強 – 實驗性模式,合併兩個提供者的輸出。
生態系統與相依
- 核心 Lua 程式碼(
plenary.nvim、nui.nvim)。 - 可選 UI 助手:
render-markdown.nvim、nvim-cmp、img-clip.nvim、copilot.lua、snacks.nvim、mini.pick、telescope.nvim、fzf-lua。 - 一個小的 Rust 二進位檔(使用 Cargo 建構)負責與 LLM API 通訊的繁重任務。
成熟度
- 活躍維護中(Lua 和 Rust 測試的 CI 指示燈,README 中有快速迭代說明)。
- 需要 Neovim 0.11+(0.12+ 以獲得完整功能集)。
- 部分功能標記為 實驗性(自動建議、雙重增強、ACP 自動批准)。
誰可能受益
- 大部分時間在 Neovim 中工作,希望在不離開編輯器的情況下獲得內聯 AI 輔助的開發者。
- 需要透過
avante.md強制執行專案特定編碼規範的團隊。 - 喜歡 Cursor AI IDE 經驗但更傾向於完全開源、自托管工作流程的使用者。
以上所有資訊均直接取自倉儲的 README。
寫過它的文章
相關
- 專案
- 專案
- 專案
- 專案
- 專案