Neovim er stadig redaktørens valg for udviklere, der vil beholde tastaturet og terminalen som base, men de seneste to år har et spørgsmål presset sig på: kan en Vim-efterkommer følge med Cursor og GitHub Copilot på AI-fronten? Svaret hedder Avante.nvim, et plugin der bogstaveligt forsøger at genskabe Cursors chat-og-diff-workflow inde i Neovim. Projektet ramte version v0.4.0 den 26. september 2026, og udviklerne opdaterede release-siden igen den 9. oktober 2026 med rettelser til afhængighedshåndteringen, ifølge det officielle GitHub-repo.
Denne guide viser dig, trin for trin, hvordan du installerer Avante.nvim, kobler det til en AI-udbyder efter eget valg, og bruger det til at chatte med din kodebase, anvende diffs sikkert og køre agent-workflows via Agent Client Protocol (ACP). Du ender med en komplet, kørende Neovim-konfiguration og en liste over de faldgruber, de fleste rammer i de første 20 minutter.
Det er ikke kun Avante.nvim, der flytter sig hurtigt. Hele kategorien af AI-drevne udviklerværktøjer skifter model og prisstruktur hver eneste måned, og det samme gælder dette plugin. Byg derfor opsætningen, så den er let at ændre: hold API-nøgler i miljøvariabler, ikke hårdkodet i konfigurationen, og vælg en pluginhåndtering, der gør det nemt at pinne eller rulle tilbage til en tidligere version, hvis en ny release skulle bryde din workflow. Resten af artiklen følger den opskrift.
Hvad er Avante.nvim, og hvorfor er Neovim plus AI relevant igen?
Avante.nvim er et open source-plugin til Neovim, der efterligner Cursor AI IDE’s arbejdsgang: du skriver et spørgsmål eller en instruktion i et sidepanel, pluginet læser den aktive fil (eller hele projektet), og forslagene vises som en diff, du kan acceptere linje for linje. Beskrivelsen hos neovimcraft.com opsummerer det præcist: avante.nvim er designet til at efterligne adfærden fra Cursor AI IDE, komplet med AI-drevne kodeforslag og muligheden for at anvende dem direkte på kildefilerne. Projektet har samlet omkring 18.149 GitHub-stjerner per september 2026, hvilket gør det til det mest populære AI-plugin i Neovim-økosystemet lige nu.
Interessen giver mening, når man ser på tallene for AI i udviklerværktøjer generelt. I Stack Overflows udviklerundersøgelse for 2025 svarede 84 procent af de adspurgte, at de bruger eller planlægger at bruge AI-værktøjer i deres udviklingsproces, og 51 procent af de professionelle udviklere sagde, at de bruger AI-værktøjer dagligt. Samme undersøgelse viser, at 14 procent af alle respondenter stadig kører Neovim som deres primære udviklingsmiljø, et overraskende højt tal for en terminal-editor i en æra domineret af VS Code-forks.
Avante.nvim er ikke alene i kategorien. awesome-alternatives.com beskriver pluginet som et open source-alternativ til både Cursor og GitHub Copilot, og CodeCompanion.nvim er den mest oplagte konkurrent med omkring 6.836 stjerner og indbygget støtte til Claude- og OpenAI-modeller. Denne guide fokuserer på Avante.nvim, fordi det har den bredeste modelstøtte og den mest modne implementering af Agent Client Protocol, men du finder en sammenligningstabel med CodeCompanion.nvim og Cursor senere i artiklen.
Oversigten over Neovim-AI-plugins på GitHub-repoet neovim-ai-plugins viser desuden, at feltet er vokset langt forbi de to store navne. Mindre projekter dækker alt fra ren autocomplete til fulde agent-loops, og mange af dem bygger videre på samme fundament: Treesitter til at forstå kodens struktur, og en ekstern proces, der taler med en sprogmodel via HTTP. Avante.nvim skiller sig ud ved at have valgt Rust til de dele af koden, der skal være hurtige, i stedet for at løse alt i Lua, hvilket forklarer, hvorfor installationen kræver et build-trin, de fleste rene Lua-plugins ikke har.
Forudsætninger: Dette skal være på plads, før du starter
Avante.nvim stiller nogle konkrete krav til din opsætning. Spring ikke denne del over, for de fleste fejlmeldinger i trin fire og fem skyldes manglende afhængigheder, ikke selve pluginet. Listen ser lang ud, men på en almindelig Ubuntu-, Fedora- eller macOS-maskine har du typisk allerede halvdelen installeret fra andre udviklerprojekter.
- Neovim 0.11.0 eller nyere (pluginet starter slet ikke på ældre versioner)
- Git installeret og tilgængeligt i PATH
- En C-kompiler (gcc, clang eller MSVC) til at bygge native afhængigheder
- Node.js 18 eller nyere, hvis du vil bruge billedindlæsning i chatten
- cargo (Rust) anbefales til hurtigere build af kernekomponenten
- ripgrep installeret, så Avante kan søge i projektet hurtigt
- En pluginhåndtering: denne guide bruger lazy.nvim, men rocks.nvim fungerer også
- Mindst én API-nøgle (OpenAI, Anthropic) eller en lokal Ollama-installation
Afsæt cirka 45 minutter til hele opsætningen, inklusive den første build af native-afhængighederne, som typisk tager to til fire minutter afhængigt af din maskine. De fleste af de 45 minutter går med at vælge og teste en AI-udbyder, ikke med selve installationen. Har du allerede en API-nøgle liggende fra et andet projekt, kan du realistisk nok nå hele opsætningen på 20-25 minutter.
Et par ord om, hvorfor hvert krav står på listen: C-kompileren bruges til at bygge den native komponent i trin fire, Node.js skal kun bruges, hvis du planlægger at indsætte skærmbilleder i chatten (for eksempel af et fejlbesked-skærmbillede), og ripgrep er det, der gør, at Avante kan søge hele projektet igennem på millisekunder i stedet for sekunder, når agent-tilstanden skal finde relevante filer i trin ni.
Trin 1-2: Opgrader Neovim og installer lazy.nvim
Trin 1: Tjek og opgrader din Neovim-version
Start med at tjekke, hvilken version du kører. Avante.nvim nægter helt at loade, hvis du er under 0.11.0, så dette er ikke valgfrit.
nvim --version
# Forventet output (eller nyere):
# NVIM v0.11.2
# Build type: Release
# LuaJIT 2.1.1234567
# macOS (Homebrew)
brew install neovim
# Ubuntu/Debian via PPA (apt-pakken er ofte for gammel)
sudo add-apt-repository ppa:neovim-ppa/unstable -y
sudo apt update && sudo apt install neovim -y
# Arch Linux
sudo pacman -S neovim
Kør nvim --version igen bagefter, og bekræft at tallet nu starter med 0.11 eller højere. Hvis din distribution stadig pakker en ældre version, er AppImage-udgaven fra Neovims eget GitHub-repo den hurtigste genvej.
Trin 2: Sæt lazy.nvim op som pluginhåndtering
Har du allerede lazy.nvim kørende, kan du springe til trin tre. Ellers indsætter du bootstrap-koden øverst i din init.lua:
local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim"
if not vim.loop.fs_stat(lazypath) then
vim.fn.system({
"git", "clone", "--filter=blob:none",
"https://github.com/folke/lazy.nvim.git",
"--branch=stable",
lazypath,
})
end
vim.opt.rtp:prepend(lazypath)
require("lazy").setup({
spec = {
{ import = "plugins" },
},
})
Opret mappen ~/.config/nvim/lua/plugins/, hvis den ikke findes. Det er her, du lægger Avante-konfigurationen i næste trin, så lazy.nvim kan indlæse den automatisk via import = "plugins".
Trin 3-4: Tilføj Avante.nvim og byg afhængighederne
Opret filen ~/.config/nvim/lua/plugins/avante.lua og indsæt plugin-specifikationen. Læg mærke til build-linjen: den kører Makefile’et, som kompilerer avante.nvims native Rust-komponent, hvilket er det, der gør diff-renderingen hurtig.
return {
"avante-corp/avante.nvim",
version = false, -- følg seneste commit, ikke kun tags
build = "make", -- eller "powershell -ExecutionPolicy Bypass -File Build.ps1" på Windows
event = "VeryLazy",
dependencies = {
"nvim-treesitter/nvim-treesitter",
"stevearc/dressing.nvim",
"nvim-lua/plenary.nvim",
"MunifTanjim/nui.nvim",
"nvim-tree/nvim-web-devicons",
{
"HakonHarnes/img-clip.nvim",
event = "VeryLazy",
opts = { default = { embed_image_as_base64 = false } },
},
{
"MeanderingProgrammer/render-markdown.nvim",
opts = { file_types = { "markdown", "Avante" } },
ft = { "markdown", "Avante" },
},
},
}
Genstart Neovim, og kør :Lazy sync. Lazy.nvim henter pluginet, kører make-kommandoen, og du bør se en status med “Built” ud for avante.nvim, når processen er færdig. Første build tager typisk to til fire minutter, fordi Rust-kompileringen sker lokalt.
Brugere af rocks.nvim eller lazy.nvim behøver normalt ikke selv at håndtere den nye afhængighed, som v0.4.0 introducerede til generering af Avante-kommandoer. Har du derimod en manuel installation uden pluginhåndtering, skal du selv tilføje den ekstra afhængighed i din konfiguration, ellers fejler opstarten med en fejlmeddelelse om en manglende modul-sti.
Forstå hvad build-kommandoen rent faktisk gør
Mange Neovim-plugins er ren Lua og kræver ingen build-proces. Avante.nvim er anderledes, fordi diff-beregningen og en del af tekstbehandlingen er skrevet i Rust for at holde editoren responsiv, selv på store filer. Kommandoen make kalder et Makefile i plugin-mappen, som downloader en Rust-toolchain, hvis du ikke allerede har en, og kompilerer en delt binærfil, Lua-koden derefter loader ved opstart. Det er grunden til, at første installation tager minutter, mens efterfølgende opdateringer ofte er hurtigere, fordi kun ændrede dele genkompileres.
Du kan verificere, at build-processen lykkedes, ved at køre :checkhealth avante i Neovim. Kommandoen tjekker, om den native binærfil findes, om alle Lua-afhængigheder er loadet korrekt, og om din valgte AI-udbyder kan nås over netværket. Få altid et grønt resultat her, før du går videre til næste trin, ellers arver du fejlen videre til provider-konfigurationen, hvor den er sværere at diagnosticere.
Trin 5: Vælg og konfigurer din AI-udbyder
Avante.nvim understøtter flere modeludbydere, så du er ikke bundet til én tjeneste. De mest brugte i praksis er OpenAI, Anthropic og Ollama til lokale modeller. Tilføj en opts-blok til plugin-specifikationen fra trin tre:
return {
"avante-corp/avante.nvim",
-- ... (resten fra trin 3)
opts = {
provider = "anthropic", -- "openai", "anthropic" eller "ollama"
providers = {
anthropic = {
endpoint = "https://api.anthropic.com",
model = "claude-sonnet-4-6",
extra_request_body = {
temperature = 0.3,
max_tokens = 4096,
},
},
openai = {
endpoint = "https://api.openai.com/v1",
model = "gpt-5.6",
timeout = 30000,
},
ollama = {
endpoint = "http://127.0.0.1:11434",
model = "qwen2.5-coder:14b",
},
},
},
}
Eksportér din API-nøgle som miljøvariabel, før du starter Neovim, i stedet for at skrive den direkte i Lua-filen. Det forhindrer, at nøglen havner i Git, hvis du deler din dotfiles-mappe offentligt.
Valget af model afhænger mest af, hvad du bruger Avante til i dagligdagen. Skal pluginet forklare og refaktorere kode i store filer, vinder modeller med et stort kontekstvindue typisk, fordi de kan læse hele filen uden at skære noget fra. Skal det derimod bare skrive små funktioner eller tests ud fra en kort beskrivelse, er svartid ofte vigtigere end kontekststørrelse, og en hurtigere, billigere model giver en bedre oplevelse i praksis. De fleste erfarne brugere ender med at konfigurere to udbydere, en hurtig til småopgaver og en stærkere til de sjældnere, men tungere refaktoreringsopgaver, og skifter mellem dem efter behov.
# Tilføj til ~/.bashrc, ~/.zshrc eller tilsvarende
export ANTHROPIC_API_KEY="din-nøgle-her"
export OPENAI_API_KEY="din-anden-nøgle-her"
# Genindlæs shell-konfigurationen
source ~/.zshrc
| Udbyder | Kræver API-nøgle | Kører lokalt | Typisk brug |
|---|---|---|---|
| Anthropic | Ja | Nej | Kompleks refaktorering, lange filer |
| OpenAI | Ja | Nej | Generel kodegenerering |
| Ollama | Nej | Ja | Offline arbejde, følsom kode |
| Azure OpenAI | Ja (virksomhed) | Nej | Compliance-krav i virksomheder |
| OpenRouter | Ja | Nej | Skift mellem modeller uden ny nøgle |
Trin 6: Din første chat i Avante
Åbn en kodefil i Neovim og kør :AvanteAsk. Et sidepanel åbner til højre, hvor du kan skrive et spørgsmål om den aktive fil. Skriv for eksempel “Forklar denne funktion, og find eventuelle edge cases, den ikke håndterer” og tryk Enter.
Output-eksempel fra en typisk session mod en Python-fil:
› AvanteAsk: Forklar denne funktion, og find edge cases
Funktionen `parse_config()` læser en YAML-fil og returnerer et
dict. Den håndterer ikke:
1. Manglende fil (ingen try/except omkring open())
2. Tom YAML-fil (yaml.safe_load returnerer None, som senere
fejler ved dict-opslag)
3. Ugyldig YAML-syntaks (ingen fejlhåndtering for
yaml.YAMLError)
Foreslået rettelse er klar i diff-visningen til højre.
Tryk aa for at anvende, eller ar for at afvise.
Pluginet kan stille spørgsmål om den aktuelle kodefil og foreslå forbedringer direkte baseret på konteksten omkring markøren. Vil du i stedet have Avante til at ændre kode med det samme, bruger du :AvanteEdit i stedet for :AvanteAsk, hvilket springer forklaringen over og går direkte til et forslag.
Et andet nyttigt mønster er at bruge chatten til at navigere en fremmed kodebase, før du begynder at ændre noget. Spørg for eksempel “Hvilke moduler importerer denne fil, og hvad bruges de til?”, eller “Er der nogen cirkulære afhængigheder i denne mappe?”. Avante læser projektstrukturen via Treesitter og kan ofte svare mere præcist end en generisk søgning, fordi den forstår kodens syntaks og ikke bare matcher tekststrenge. Det gør onboarding i et stort, ukendt repo betydeligt hurtigere, især hvis du kombinerer det med avante.md fra trin otte, så svarene allerede tager højde for projektets konventioner.
Trin 7: Gennemgå og anvend kodeændringer sikkert
Det vigtigste trin i hele workflowet er diff-gennemgangen. AI-forslag kan anvendes direkte på kildekoden med en enkelt kommando, men det betyder også, at en dårlig instruktion kan ødelægge en fil på et splitsekund, hvis du ikke læser diffen først.
- Grøn markering viser linjer, Avante vil tilføje
- Rød markering viser linjer, Avante vil fjerne
]cog[chopper mellem ændringsblokke, ligesom i Vims indbyggede diff-tilstand:AvanteApplyanvender hele forslaget på én gang:AvanteApply!springer bekræftelsen over (brug kun i filer under versionsstyring)
En god vane: commit altid dine ændringer, før du beder Avante om en større refaktorering. Så koster en fejlet diff dig et git checkout -- fil.py i stedet for en halv times genskrivning. Det samme workflow genkender du, hvis du har arbejdet med Cline i VS Code, hvor diff-review også er kernen i sikkerheden.
Trin 8: Projektregler med avante.md
Projektet understøtter projektspecifikke instruktioner via en avante.md-fil i projektroden. Filen fungerer som en permanent systemprompt, Avante læser, hver gang den arbejder i det pågældende projekt, og den er stort set identisk i formål med CLAUDE.md eller den nyere, værktøjsuafhængige AGENTS.md-standard.
# avante.md i projektroden
## Konventioner
- Brug altid type hints i Python-funktioner
- Tests skrives med pytest, ikke unittest
- Ingen print()-kald i produktionskode, brug logging-modulet
## Arkitektur
- API-laget ligger i src/api/, forretningslogik i src/core/
- Databaseadgang går altid gennem src/db/repository.py
## Hvad Avante IKKE må gøre
- Ændr aldrig migrations/ mappen uden eksplicit godkendelse
- Rør ikke .env eller secrets/ under nogen omstændigheder
Gem filen, genstart Avante-sessionen med :AvanteAsk, og test det ved at bede om noget, der bryder en regel, for eksempel et print()-kald. En korrekt konfigureret session afviser eller advarer i stedet for at følge instruktionen blindt.
Commit avante.md til Git sammen med resten af projektet, i stedet for at holde den i din personlige dotfiles-mappe. Reglerne er specifikke for projektet, ikke for dig som bruger, og alle andre i teamet, der bruger Avante.nvim eller et andet AI-værktøj, der læser samme filformat, får gavn af dem uden selv at skulle skrive dem. Det er den samme logik, der ligger bag beslutningen om at lægge linting-regler og formatteringskonfiguration i repoet i stedet for i den enkelte udviklers hjemmemappe.
Trin 9: ACP og agent-workflows i praksis
Avante.nvim understøtter Agent Client Protocol, en standard der definerer kommunikationen mellem AI-agenter og udviklingsmiljøer, så samme agent-backend kan køre i flere editorer uden separat integrationsarbejde. ACP-integrationen bruges til agentfunktioner som filredigering, filoperationer og værktøjskørsel, hvilket adskiller sig fra den enklere chat-tilstand ved, at agenten selv kan beslutte at åbne flere filer, køre en testsuite eller søge i projektet uden at spørge om hver eneste handling.
-- Aktivér agent-tilstand i opts-blokken
opts = {
mode = "agentic", -- "legacy" for den ældre chat-only tilstand
acp_providers = {
claude_code = {
command = "claude-code-acp",
args = {},
},
},
}
Kør :AvanteChat i agent-tilstand, og bed om en opgave, der kræver flere trin, for eksempel “Find alle steder, hvor vi kalder det gamle API, og opdater dem til det nye endpoint.” Agenten søger selv i projektet via ripgrep, åbner de relevante filer og foreslår ændringer i hver af dem, i stedet for at du manuelt skal pege på hver fil. Samme protokol ligger bag mange af de nyere integrationer, du finder beskrevet i vores guide til MCP-server-opsætning, selvom ACP og MCP løser to forskellige dele af problemet: MCP giver agenten adgang til værktøjer og data, mens ACP standardiserer selve samtalen mellem agent og editor.
Fordelen ved at bygge på en åben protokol som ACP i stedet for en editor-specifik integration er, at samme agent-backend i princippet kan genbruges i flere miljøer. Det er også grunden til, at flere IDE-leverandører har bevæget sig i samme retning det seneste år: en standardiseret samtale mellem agent og editor betyder, at agent-udviklere ikke behøver bygge en separat integration for hver editor, og at Neovim-brugere ikke behøver vente på, at et bestemt værktøj laver en skræddersyet plugin-version, før de kan bruge det.
Trin 10: Sæt lokal AI op med Ollama
Vil du køre Avante helt uden cloud-afhængighed, er Ollama den mest afprøvede vej. Det kræver mere lokal GPU- eller CPU-kraft, men du undgår API-regninger og sender ikke kode ud af maskinen, hvilket er relevant, hvis du arbejder med følsom kode eller interne systemer. Vores gennemgang af Ollama til lokale kodemodeller går mere i dybden med selve Ollama-opsætningen, men her er de kommandoer, du skal bruge specifikt til Avante.
# Installer Ollama
curl -fsSL https://ollama.com/install.sh | sh
# Hent en kodemodel (14B passer de fleste bærbare med 16 GB RAM)
ollama pull qwen2.5-coder:14b
# Start Ollama-serveren (kører som regel automatisk som tjeneste)
ollama serve
# Test at serveren svarer
curl http://127.0.0.1:11434/api/tags
Skift provider = "ollama" i din opts-blok fra trin fem, og genstart Neovim. Forvent, at svartiden stiger mærkbart i forhold til cloud-modeller, medmindre du har en diskret GPU med mindst 12 GB VRAM. På en ren CPU-opsætning kan en 14B-model bruge 15-30 sekunder per svar, mens Anthropic eller OpenAI typisk svarer på 2-5 sekunder for samme forespørgsel.
Har du ikke en kraftig GPU til rådighed, er en mindre model som en 7B-variant ofte et bedre kompromis end en 14B-model, der skal køre udelukkende på CPU. Svaret bliver mindre nuanceret, men ventetiden falder markant, og for simple opgaver som at generere en testfil eller rette en typo i en funktionssignatur er forskellen i kvalitet sjældent mærkbar. Du kan altid skifte tilbage til en større model via :AvanteModels, hvis en opgave kræver mere kontekstforståelse, end den mindre model kan levere.
Trin 11: Tilpas keybindings og workflow
Standardbindingerne i Avante er fornuftige, men de fleste Neovim-brugere ender med at tilpasse dem til deres eget leader-key-mønster. Her er et sæt, der matcher den gængse <leader>a-præfiks-konvention, andre AI-plugins i økosystemet også bruger:
vim.keymap.set("n", "<leader>aa", "<cmd>AvanteAsk<cr>", { desc = "Avante: Spørg" })
vim.keymap.set("n", "<leader>ae", "<cmd>AvanteEdit<cr>", { desc = "Avante: Rediger" })
vim.keymap.set("n", "<leader>ac", "<cmd>AvanteChat<cr>", { desc = "Avante: Chat-panel" })
vim.keymap.set("n", "<leader>at", "<cmd>AvanteToggle<cr>", { desc = "Avante: Vis/skjul panel" })
vim.keymap.set("v", "<leader>aa", "<cmd>AvanteAsk<cr>", { desc = "Avante: Spørg om markering" })
vim.keymap.set("n", "<leader>ar", "<cmd>AvanteRefresh<cr>", { desc = "Avante: Genstart session" })
Markér en kodeblok i visuel tilstand, før du kalder <leader>aa, hvis du kun vil have Avante til at forholde sig til de markerede linjer. Det sparer både tokens og ventetid sammenlignet med at lade modellen læse hele filen for hver forespørgsel.
Integrer Avante.nvim med which-key.nvim og Telescope
De fleste Neovim-brugere, der allerede har en moden konfiguration, kører which-key.nvim til at vise tilgængelige kommandoer, og Telescope til fuzzy-søgning. Avante.nvim leger fint med begge, men du skal selv registrere grupperne, så de dukker op i which-key’s popup-vindue i stedet for at blive vist som rå keymap-strenge.
-- I din which-key.nvim-konfiguration
local wk = require("which-key")
wk.add({
{ "<leader>a", group = "Avante" },
{ "<leader>aa", desc = "Spørg" },
{ "<leader>ae", desc = "Rediger" },
{ "<leader>ac", desc = "Chat-panel" },
{ "<leader>at", desc = "Vis/skjul" },
})
-- Telescope-integration: søg i chat-historik
require("telescope").load_extension("avante_history")
vim.keymap.set("n", "<leader>ah", "<cmd>Telescope avante_history<cr>",
{ desc = "Avante: Søg i chat-historik" })
Which-key-gruppen betyder, at et tryk på <leader>a alene viser en liste over alle Avante-kommandoer med beskrivelser, i stedet for at du skal huske hver enkelt binding. Det er en lille detalje, men den gør overgangen markant lettere for nye brugere i et team, hvor ikke alle har samme muskelhukommelse for Vim-kommandoer. Telescope-integrationen er særligt nyttig, når en chat-session med en kompliceret løsning er forsvundet ned i scrollback, og du vil finde den igen uden at scrolle manuelt gennem hele historikken.
Sikkerhed: Hvad sender Avante.nvim til AI-udbyderen?
Når du bruger en cloud-baseret udbyder som OpenAI eller Anthropic, sender Avante.nvim indholdet af den fil eller det udsnit, du har markeret, samt din instruktion, til udbyderens API. I agent-tilstand kan det udvides til flere filer, hvis agenten selv vælger at læse dem som del af opgaven. Det er samme grundlæggende model, enhver cloud-AI-assistent arbejder efter, men den er værd at kende, før du peger pluginet mod en kodebase med kundedata, nøgler eller andre hemmeligheder i kommentarer eller testdata.
- Brug
.gitignore-lignende udelukkelser i avante.md til at bede modellen om aldrig at læse bestemte mapper, selv om det afhænger af, at modellen respekterer instruktionen - Foretræk Ollama til projekter med følsom kode, da intet data forlader din maskine
- Tjek udbyderens datapolitik for, om input bruges til videre modeltræning, før du sender produktionskode gennem API’et
- Roter API-nøgler regelmæssigt, og brug separate nøgler til personlige projekter og arbejdsrelateret kode
Ingen af disse punkter er unikke for Avante.nvim. De samme overvejelser gælder, uanset om du bruger Cursor, GitHub Copilot eller en anden AI-kodeassistent, men risikoen er lettere at overse i en terminal-editor, hvor der ikke er en synlig “sender data til cloud”-indikator, som flere grafiske IDE’er efterhånden har indført.
Arbejder du i en virksomhed med krav til databehandling, bør du desuden tjekke, om din arbejdsgiver allerede har en godkendt liste over AI-udbydere, før du selv vælger en i trin fem. Flere danske virksomheder har efter indførelsen af interne AI-politikker låst medarbejdere til specifikke udbydere eller krævet, at al kode-relateret AI-trafik går gennem en virksomhedsgodkendt proxy. Avante.nvims endpoint-felt i provider-konfigurationen gør det muligt at pege mod en sådan proxy i stedet for udbyderens offentlige API, uden at resten af opsætningen skal ændres.
Avante.nvim vs. CodeCompanion.nvim vs. Cursor: hvad skal du vælge?
Når folk sammenligner Neovim-AI-plugins, lander valget som regel mellem Avante.nvim og CodeCompanion.nvim, mens Cursor fungerer som referencepunkt, fordi det er den oplevelse, begge plugins forsøger at matche.
| Egenskab | Avante.nvim | CodeCompanion.nvim | Cursor |
|---|---|---|---|
| GitHub-stjerner | ~18.149 | ~6.836 | Lukket kildekode |
| ACP-understøttelse | Ja | Delvis | Indbygget, ikke ACP |
| Modeludbydere | OpenAI, Anthropic, Ollama, flere | Claude, OpenAI | Flere, låst til appen |
| Projektregler-fil | avante.md | Ingen indbygget | .cursor/rules |
| Pris | Gratis (Apache 2.0) | Gratis (Apache 2.0) | Betalt abonnement |
| Kører i terminal | Ja | Ja | Nej, kræver GUI-app |
Begge Neovim-plugins er gratis og open source under Apache 2.0-licensen, så beslutningen handler i praksis om modenhed og modelstøtte. Avante.nvims fordel er den bredere liste af understøttede udbydere og den mere komplette ACP-implementering, mens CodeCompanion.nvim ofte fremhæves for en lidt enklere konfiguration, hvis du udelukkende bruger Claude eller OpenAI. Foretrækker du slet ikke at skrive Lua-konfiguration, peger zbuild.io på, at OpenCode er det bedste gratis AI-kodeværktøj i oktober 2026 til terminalbrugere, der vil have noget, der virker ud af boksen uden pluginhåndtering.
Har du brugt andre AI-kodeværktøjer fra vores dækning af software og udviklerværktøjer, vil overgangen til Avante.nvim kræve lidt tilvænning, ikke fordi konceptet er anderledes, men fordi Neovims tastaturdrevne tilgang stiller andre krav til, hvordan du navigerer en diff, end en musedrevet GUI gør. Kommandoerne ]c og [c fra trin syv er det første, der skal sidde på rygraden, før workflowet føles naturligt.
5 almindelige faldgruber, du bør undgå
De fleste problemer med Avante.nvim opstår i opsætningsfasen, ikke under selve brugen. Her er de fem, der går igen oftest på tværs af macOS- og Linux-opsætninger.
- At springe build-trinnet over. Glemmer du
build = "make"i plugin-specifikationen, starter Avante uden fejl, men chatten svarer aldrig. Kør:Lazy build avante.nvimmanuelt, hvis du opdager det for sent. - At lægge API-nøglen direkte i init.lua. Ender filen i et offentligt Git-repo, er nøglen lækket permanent. Brug altid miljøvariabler eller en secrets-manager.
- At bruge en Neovim-version under 0.11. Fejlmeddelelsen nævner sjældent versionskravet direkte, den ligner bare en generisk Lua-fejl, hvilket får mange til at fejlsøge det forkerte sted.
- At lade agent-tilstanden køre uovervåget i produktionskode. ACP-agenter kan redigere flere filer på egen hånd. Uden version control som sikkerhedsnet kan en dårligt formuleret instruktion gøre reel skade.
- At ignorere avante.md. Uden projektregler gætter modellen på konventioner, og resultatet bliver inkonsistent kode, der ikke matcher resten af kodebasen.
Fejlfinding: 8 problemer og løsninger
Støder du på fejl undervejs, er chancen stor for, at den står på listen herunder. Alle otte er samlet fra de mest almindelige scenarier, brugere rapporterer efter en frisk installation. Kør altid :checkhealth avante først, uanset hvilken fejl du ser, det sparer tid i halvdelen af tilfældene, fordi den samler flere potentielle problemer i én kommando.
- “module ‘avante’ not found” ved opstart. Lazy.nvim har ikke synkroniseret endnu. Kør
:Lazy sync, genstart Neovim helt, ikke kun bufferen. - Build fejler med “make: command not found”. Du mangler build-essential (Linux) eller Xcode Command Line Tools (macOS). Installer dem, og kør
:Lazy build avante.nvimigen. - Panelet åbner, men svarer aldrig. Tjek at din API-nøgle rent faktisk er eksporteret i den shell, Neovim blev startet fra, ikke kun i en anden terminal-fane.
- “401 Unauthorized” fra udbyderen. Nøglen er enten forkert kopieret eller udløbet. Generer en ny nøgle direkte hos udbyderen, og test den med et simpelt curl-kald først.
- Ollama svarer med “connection refused”. Serveren kører ikke. Start den med
ollama serve, og bekræft medcurl http://127.0.0.1:11434/api/tags. - Diff-visningen viser forkerte linjenumre. Sker typisk, hvis du redigerer filen manuelt, mens en Avante-session stadig er åben. Kør
:AvanteRefreshfor at synkronisere igen. - Treesitter-fejl ved opstart. Kør
:TSUpdatefor at opdatere parserne. Avante er afhængig af nvim-treesitter til syntax-bevidst kontekst. - Pluginet er meget langsomt på store filer. Markér kun det relevante udsnit i visuel tilstand i stedet for at lade Avante læse hele filen, især på filer over 1.000 linjer.
- Which-key viser rå keymap-strenge i stedet for beskrivelser. Du har sat keybindings op i trin 11, men glemt at registrere dem hos which-key.nvim separat. Tilføj gruppen fra integrationseksemplet i artiklen.
Avancerede tips og et komplet eksempelprojekt
Når grundopsætningen kører stabilt, er der et par justeringer, der gør daglig brug markant hurtigere. Sænk temperature til omkring 0,2 i dine provider-indstillinger, hvis du primært bruger Avante til refaktorering frem for kreativ kodegenerering. Det reducerer antallet af unødvendige variationer i forslagene. Hold desuden avante.md under 200 linjer. Store instruktionsfiler æder kontekst-budget, som ellers kunne bruges på selve koden.
Overvej også at holde to separate konfigurationsfiler, hvis du arbejder på tværs af flere projekter med forskellige krav til, hvor koden må sendes hen. En privat avante-personal.lua med en cloud-udbyder til hobbyprojekter, og en avante-work.lua, der tvinger provideren til Ollama, uanset hvad resten af din konfiguration siger. Lazy.nvim kan betinge, hvilken fil der loades, baseret på arbejdsmappen med en simpel cond-funktion i plugin-specifikationen, så du ikke risikerer at sende arbejdsrelateret kode til den forkerte udbyder ved en fejl.
En sidste genvej, der ofte overses: brug :AvanteModels til at skifte mellem forudkonfigurerede modeller midt i en session, uden at skulle redigere Lua-filen og genstarte Neovim. Det er særligt nyttigt, når du sidder med en opgave, der starter som en hurtig spørgsmål-og-svar-session, men undervejs udvikler sig til en større refaktorering, der kræver en model med et bredere kontekstvindue.
Her er en samlet, kørende konfiguration, du kan kopiere direkte ind i ~/.config/nvim/lua/plugins/avante.lua. Den samler alt fra trinene ovenfor i én fil.
return {
"avante-corp/avante.nvim",
version = false,
build = "make",
event = "VeryLazy",
dependencies = {
"nvim-treesitter/nvim-treesitter",
"stevearc/dressing.nvim",
"nvim-lua/plenary.nvim",
"MunifTanjim/nui.nvim",
"nvim-tree/nvim-web-devicons",
{
"HakonHarnes/img-clip.nvim",
event = "VeryLazy",
opts = { default = { embed_image_as_base64 = false } },
},
{
"MeanderingProgrammer/render-markdown.nvim",
opts = { file_types = { "markdown", "Avante" } },
ft = { "markdown", "Avante" },
},
},
opts = {
provider = "anthropic",
mode = "agentic",
providers = {
anthropic = {
endpoint = "https://api.anthropic.com",
model = "claude-sonnet-4-6",
extra_request_body = { temperature = 0.2, max_tokens = 4096 },
},
openai = {
endpoint = "https://api.openai.com/v1",
model = "gpt-5.6",
timeout = 30000,
},
ollama = {
endpoint = "http://127.0.0.1:11434",
model = "qwen2.5-coder:14b",
},
},
acp_providers = {
claude_code = { command = "claude-code-acp", args = {} },
},
},
keys = {
{ "<leader>aa", "<cmd>AvanteAsk<cr>", desc = "Avante: Spørg", mode = { "n", "v" } },
{ "<leader>ae", "<cmd>AvanteEdit<cr>", desc = "Avante: Rediger" },
{ "<leader>ac", "<cmd>AvanteChat<cr>", desc = "Avante: Chat-panel" },
{ "<leader>at", "<cmd>AvanteToggle<cr>", desc = "Avante: Vis/skjul panel" },
{ "<leader>ar", "<cmd>AvanteRefresh<cr>", desc = "Avante: Genstart session" },
},
}
Perspektivet her rækker ud over selve pluginet. Ifølge Gartner vil 90 procent af virksomhedernes softwareudviklere bruge AI-kodeassistenter inden 2028, mod under 14 procent i starten af 2024. IDC’s undersøgelse fra september 2024 pegede allerede dengang på, at 90 procent af udviklerne havde brugt en kodeassistent til produktionsklare løsninger mellem sommeren 2023 og sommeren 2024. Om det ender med at være Avante.nvim, CodeCompanion.nvim eller en helt tredje løsning, der vinder Neovim-brugerne, er mindre vigtigt end selve pointen: terminal-first-udviklere behøver ikke længere vælge mellem tastaturdrevet effektivitet og AI-assisteret kodning.
Det betyder ikke, at feltet står stille. Avante.nvim ligger på version 0.4.0 i skrivende stund, og udviklerne har historisk udgivet nye versioner i hurtigt tempo, så tjek altid release-siden på GitHub for brydende ændringer, før du opdaterer en produktionsopsætning. Tilføjer du lazy-lock.json til din dotfiles-mappes versionsstyring, kan du altid rulle tilbage til en kendt, fungerende version, hvis en opdatering skulle introducere en regression, du ikke har tid til at fejlsøge midt i en arbejdsdag.
Ofte stillede spørgsmål
Er Avante.nvim gratis at bruge?
Selve pluginet er gratis og open source under Apache 2.0-licensen. Du betaler kun for API-kald til OpenAI eller Anthropic, medmindre du vælger Ollama, som kører helt lokalt uden regning.
Kan jeg bruge Avante.nvim uden internetforbindelse?
Ja, hvis du sætter provider til Ollama og har en model hentet lokalt på forhånd. Alle øvrige udbydere kræver aktiv internetforbindelse til hvert API-kald.
Hvilken Neovim-version kræver Avante.nvim?
Mindst 0.11.0. Ældre versioner starter slet ikke pluginet, og fejlmeddelelsen kan være svær at tyde, hvis man ikke kender kravet på forhånd.
Hvad er forskellen på AvanteAsk og AvanteEdit?
AvanteAsk starter en samtale, hvor modellen forklarer eller foreslår uden at ændre filen automatisk. AvanteEdit går direkte til et konkret forslag i diff-form, klar til at blive anvendt eller afvist.
Er det sikkert at lade agent-tilstand redigere flere filer selvstændigt?
Kun hvis projektet er under versionsstyring, så du altid kan rulle ændringer tilbage. Brug ikke agent-tilstand direkte mod produktionskode uden en commit som sikkerhedsnet først, og gennemgå altid diffen i hver fil, agenten har rørt, før du går videre.
Hvordan adskiller Avante.nvim sig fra CodeCompanion.nvim?
Avante.nvim har flere understøttede modeludbydere og en mere komplet ACP-integration, mens CodeCompanion.nvim ofte opfattes som enklere at konfigurere, hvis du udelukkende arbejder med Claude eller OpenAI.
Kan jeg bruge flere AI-udbydere samtidig?
Ja. Du definerer dem alle i providers-tabellen og skifter aktiv udbyder med provider-feltet eller via kommandoen :AvanteSwitchProvider, uden at skulle genstarte Neovim.
Virker avante.md sammen med AGENTS.md?
De to filer løser samme problem for forskellige værktøjer. Du kan sagtens have begge i samme projektrod, så både Avante og andre AI-agenter, der følger AGENTS.md-standarden, respekterer de samme projektregler.
Kører Avante.nvim på Windows?
Ja, både via WSL2 og native Windows, men build-trinnet kræver PowerShell-scriptet i stedet for make, som nævnt i plugin-specifikationen i trin tre. WSL2 er generelt den mest afprøvede vej, hvis du i øvrigt bruger Linux-værktøjer som ripgrep og Git i samme miljø.



