💤 Neovim-Distribution

LazyVim – Neovim mit fertiger IDE-Konfiguration

LazyVim von Folke Lemaitre ist keine eigene Software, sondern eine Neovim-Konfiguration auf Basis des Plugin-Managers lazy.nvim. Alles Vim-Wissen gilt weiter – dazu kommen Dateisuche, Git, LSP, Autovervollständigung und ein Menü hinter der Leertaste (dem Leader). Und alles bleibt Lua-Code, den du überschreiben kannst.

Deine Konfigurationlua/config/*.lua · lua/plugins/*.lua
Überschreibt und ergänzt alles darunter – ohne LazyVim selbst zu ändern.
LazyVim-Extras:LazyExtras → lazyvim.json
Fertige Pakete zum Zuschalten: Sprachen (lang.python, lang.typescript …), Editor, Coding, UI, KI.
LazyVimLazyVim/LazyVim
Kuratierte Plugin-Sammlung mit Voreinstellungen: Optionen, Tasten, Autocommands.
lazy.nvimfolke/lazy.nvim
Plugin-Manager: installiert, aktualisiert und lädt Plugins erst bei Bedarf.
Neovim≥ 0.11.2 mit LuaJIT
Der Editor: Vim-Kern + Lua-API + eingebauter LSP-Client + Treesitter.

📂 Aufbau der Konfiguration

~/.config/nvim
├── init.lua               ← lädt nur require("config.lazy")
├── lazy-lock.json         ← exakte Plugin-Versionen (von lazy.nvim geschrieben)
├── lazyvim.json           ← aktivierte Extras (von :LazyExtras geschrieben)
└── lua
    ├── config
    │   ├── lazy.lua       ← installiert lazy.nvim und ruft setup() auf
    │   ├── options.lua    ← vim.opt …   geladen VOR dem Start von lazy.nvim
    │   ├── keymaps.lua    ← eigene Tasten, geladen beim Event VeryLazy
    │   └── autocmds.lua   ← eigene Autocommands, geladen bei VeryLazy
    └── plugins
        ├── example.lua    ← jede Datei gibt eine Liste von Plugin-Specs zurück
        └── …              ← alles hier wird automatisch importiert

🚀 Was beim Start passiert

  1. 1
    nvim
    Neovim startet und liest ~/.config/nvim/init.lua
  2. 2
    require("config.lazy")
    lädt lua/config/lazy.lua – installiert lazy.nvim bei Bedarf per git clone
  3. 3
    options.lua
    LazyVim-Optionen, danach deine – noch bevor Plugins starten
  4. 4
    require("lazy").setup()
    liest alle Specs: LazyVim-Plugins, Extras, lua/plugins/*.lua
  5. 5
    Plugins laden
    nur was sofort nötig ist; der Rest wartet auf Event, Befehl, Dateityp oder Taste
  6. 6
    VeryLazy
    nach dem Start: keymaps.lua und autocmds.lua (erst LazyVims, dann deine)
-- lua/config/lazy.lua (Auszug aus dem Starter)
require("lazy").setup({
  spec = {
    -- LazyVim selbst und seine Plugins importieren
    { "LazyVim/LazyVim", import = "lazyvim.plugins" },
    -- eigene Plugins aus lua/plugins/ importieren bzw. überschreiben
    { import = "plugins" },
  },
})
-- lua/plugins/meine.lua
return {
  -- Plugin hinzufügen (wird über das Kommando geladen)
  { "tpope/vim-fugitive", cmd = "Git" },

  -- Optionen eines LazyVim-Plugins ändern
  { "folke/tokyonight.nvim", opts = { style = "night" } },

  -- Plugin abschalten
  { "folke/flash.nvim", enabled = false },
}
-- lua/config/options.lua
vim.opt.relativenumber = false   -- LazyVim schaltet relative Nummern ein
vim.opt.wrap = true

-- lua/config/keymaps.lua
vim.keymap.set("n", "<leader>wq", "<cmd>wq<cr>", { desc = "Speichern und schließen" })
-- QWERTZ-Komfort: ö und ä als [ und ]
vim.keymap.set({ "n", "x", "o" }, "ö", "[", { remap = true })
vim.keymap.set({ "n", "x", "o" }, "ä", "]", { remap = true })
Plugin-Spec in einem Satz: eine Lua-Tabelle mit dem GitHub-Kürzel und optional opts (Einstellungen), keys, cmd, event, ft (wann laden) oder enabled = false. Gleiche Kürzel werden zusammengeführt – so änderst du LazyVims Plugins, ohne dessen Dateien anzufassen. Extras schaltest du mit :LazyExtras an (Taste x auf einem Eintrag).

🧩 Die wichtigsten Plugins und ihre Tasten

Kern
💤
lazy.nvim
folke/lazy.nvim

Der Plugin-Manager: installiert, aktualisiert und lädt Plugins erst bei Bedarf (Event, Befehl, Dateityp oder Taste). Hält die Versionen in lazy-lock.json fest.

  • <leader>lLazy-Oberfläche öffnen
Editor
🍿
snacks.nvim
folke/snacks.nvim

Sammlung kleiner Helfer: Picker (Dateien, Grep, Buffer, Hilfe …), Datei-Explorer, Dashboard, Benachrichtigungen, Terminal, Lazygit-Fenster, Scratch-Buffer.

  • <leader><space>Dateien finden (Root Dir)
  • <leader>/Grep im Projekt
  • <leader>,Buffer-Liste
  • <leader>eExplorer
  • <leader>frzuletzt geöffnet
  • <leader>ggLazygit (wenn installiert)
  • <C-/>Terminal
🗝️
which-key.nvim
folke/which-key.nvim

Zeigt nach einer angefangenen Tastenfolge (z. B. <leader>) ein Menü mit allen Möglichkeiten – die eingebaute Hilfe von LazyVim.

  • <leader>?Belegungen des Buffers
  • <C-w><space>Fenster-Hydra
⚡
flash.nvim
folke/flash.nvim

Springen per Suchbeschriftung: s tippen, ein paar Buchstaben des Ziels, dann den angezeigten Sprungbuchstaben. Ersetzt in LazyVim das s von Vim.

  • sFlash-Sprung
  • SFlash Treesitter
  • r (nach Operator)Remote Flash
  • <c-s> (bei /)Flash in der Suche umschalten
🌿
gitsigns.nvim
lewis6991/gitsigns.nvim

Git-Änderungen am Rand, Hunks stagen/zurücksetzen, Blame pro Zeile.

  • ]h / [hnächster/voriger Hunk
  • <leader>ghsHunk stagen
  • <leader>ghrHunk zurücksetzen
  • <leader>ghpHunk-Vorschau
  • ihTextobjekt „Hunk“
🚦
trouble.nvim
folke/trouble.nvim

Übersichtliche Listen für Diagnosen, Quickfix, Symbole und LSP-Referenzen.

  • <leader>xxDiagnosen
  • <leader>csSymbole
  • ]q / [qnächster/voriger Eintrag
✅
todo-comments.nvim
folke/todo-comments.nvim

Hebt TODO, FIX, HACK, NOTE … hervor und listet sie projektweit.

  • ]t / [tnächster/voriger TODO
  • <leader>stTODOs suchen
🔁
grug-far.nvim
MagicDuck/grug-far.nvim

Suchen und Ersetzen über das ganze Projekt (ripgrep) in einem eigenen Buffer.

  • <leader>srSearch and Replace
Coding
🎯
mini.ai
nvim-mini/mini.ai

Erweitert die a/i-Textobjekte: o (Block), f (Funktion), c (Klasse), t (Tag), d (Ziffern), e (Wortteil in camelCase), g (ganzer Buffer), u/U (Funktionsaufruf). Findet auch das nächste Objekt, wenn der Cursor davor steht.

  • vaf / difFunktion markieren / Inhalt löschen
  • cicKlasseninhalt ändern
  • yigganzen Buffer kopieren
🧷
mini.pairs
nvim-mini/mini.pairs

Schließt Klammern und Anführungszeichen automatisch (im Einfüge- und Befehlszeilenmodus).

  • ( [ { " 'Gegenstück wird ergänzt
💬
ts-comments.nvim
folke/ts-comments.nvim

Ergänzt Neovims eingebautes Kommentieren (gc/gcc) um die richtige Kommentarsyntax je Treesitter-Sprache.

  • gccZeile (aus)kommentieren
  • gc{Bewegung}Bereich kommentieren
  • gco / gcOKommentar darunter/darüber
🧠
blink.cmp
saghen/blink.cmp

Autovervollständigung (LSP, Pfade, Snippets, Buffer) – die Standard-Vervollständigung in aktuellen LazyVim-Versionen.

  • <C-space>Menü öffnen
  • <CR>Vorschlag übernehmen
  • <C-n> / <C-p>nächster / voriger Vorschlag
LSP & Formatierung
🛰️
nvim-lspconfig
neovim/nvim-lspconfig

Verbindet Neovims LSP-Client mit Sprachservern: Definitionen, Referenzen, Umbenennen, Code-Aktionen, Diagnosen.

  • gdDefinition
  • grReferenzen
  • KHover-Doku
  • <leader>caCode Action
  • <leader>crUmbenennen
🧱
mason.nvim
mason-org/mason.nvim

Installiert Sprachserver, Formatierer und Linter bequem aus Neovim heraus.

  • <leader>cmMason öffnen
🧹
conform.nvim
stevearc/conform.nvim

Formatiert beim Speichern mit dem passenden Formatierer (prettier, stylua, black …).

  • <leader>cfFormatieren
  • <leader>ufAutoformat an/aus
🔍
nvim-lint
mfussenegger/nvim-lint

Startet Linter asynchron und zeigt die Meldungen als Diagnosen.

  • ]d / [dnächste/vorige Diagnose
🌳
nvim-treesitter
nvim-treesitter/nvim-treesitter

Syntaxbaum statt regulärer Ausdrücke: genaues Highlighting, Einrückung, Textobjekte.

  • <c-space>Auswahl schrittweise vergrößern (über flash)
UI
📑
bufferline.nvim
akinsho/bufferline.nvim

Offene Buffer als Reiter am oberen Rand.

  • <S-h> / <S-l>voriger / nächster Buffer
  • <leader>bpanheften
  • <leader>bdBuffer schließen
📏
lualine.nvim
nvim-lualine/lualine.nvim

Farbige Statuszeile mit Modus, Git-Zweig, Diagnosen und Position.

📣
noice.nvim
folke/noice.nvim

Moderne Befehlszeile und Meldungen als schwebende Fenster.

  • <leader>snhMeldungsverlauf
  • <leader>sndalle ausblenden
Werkzeuge
💾
persistence.nvim
folke/persistence.nvim

Speichert Sitzungen (offene Dateien, Fenster) automatisch pro Verzeichnis.

  • <leader>qsSitzung wiederherstellen
  • <leader>qlletzte Sitzung
🌃
tokyonight.nvim
folke/tokyonight.nvim

Das Standard-Farbschema (Catppuccin ist ebenfalls vorinstalliert).

  • <leader>uCFarbschema wählen

⌨️ Alle Standard-Belegungen

103 von 103 Belegungen · <leader> = Leertaste
TasteWirkungGruppe
<leader><space>Find Files (Root Dir) – Dateisuche im ProjektLeader direkt
<leader>,Buffers – offene Buffer auflistenLeader direkt
<leader>.Toggle Scratch Buffer – NotizzettelLeader direkt
<leader>/Grep (Root Dir) – Text im ganzen Projekt suchenLeader direkt
<leader>:Command History – letzte :-BefehleLeader direkt
<leader>-Split Window Below – Fenster horizontal teilenLeader direkt
<leader>|Split Window Right – Fenster vertikal teilenLeader direkt
<leader>`Switch to Other Buffer – zum vorigen BufferLeader direkt
<leader>?Buffer Keymaps (which-key) – alle Belegungen des BuffersLeader direkt
<leader>eExplorer Snacks (root dir) – DateibaumLeader direkt
<leader>EExplorer Snacks (cwd)Leader direkt
<leader>lLazy – Plugin-Manager lazy.nvim öffnenLeader direkt
<leader>LLazyVim ChangelogLeader direkt
<leader>nNotification HistoryLeader direkt
<leader>KKeywordprg – wie K in VimLeader direkt
<leader>SSelect Scratch BufferLeader direkt
<leader>ffFind Files (Root Dir)+file/find
<leader>fFFind Files (cwd)+file/find
<leader>frRecent – zuletzt geöffnete Dateien+file/find
<leader>fbBuffers+file/find
<leader>fcFind Config File+file/find
<leader>fgFind Files (git-files)+file/find
<leader>fnNew File+file/find
<leader>feExplorer (root dir)+file/find
<leader>ftTerminal (Root Dir)+file/find
<leader>fTTerminal (cwd)+file/find
<leader>fpProjects+file/find
<leader>ggLazygit (Root Dir) – nur wenn lazygit installiert ist+git
<leader>gGLazygit (cwd)+git
<leader>gsGit Status+git
<leader>glGit Log+git
<leader>gLGit Log (cwd)+git
<leader>gbGit Blame Line+git
<leader>gfGit Current File History+git
<leader>gdGit Diff (hunks)+git
<leader>gBGit Browse (open)+git
<leader>ghsStage Hunk (gitsigns)+git
<leader>ghrReset Hunk (gitsigns)+git
<leader>ghpPreview Hunk Inline (gitsigns)+git
<leader>ghbBlame Line (gitsigns)+git
<leader>sgGrep (Root Dir)+search
<leader>swVisual selection or word (Root Dir)+search
<leader>skKeymaps+search
<leader>shHelp Pages+search
<leader>sdDiagnostics+search
<leader>ssLSP Symbols+search
<leader>srSearch and Replace (grug-far)+search
<leader>s"Registers+search
<leader>smMarks+search
<leader>sRResume+search
<leader>stTodo (todo-comments)+search
<leader>suUndotree+search
<leader>sbBuffer Lines+search
<leader>caCode Action+code
<leader>crRename+code
<leader>cRRename File+code
<leader>cfFormat+code
<leader>cdLine Diagnostics+code
<leader>clLsp Info+code
<leader>cmMason+code
<leader>csSymbols (Trouble)+code
<leader>coOrganize Imports+code
<leader>bbSwitch to Other Buffer+buffer
<leader>bdDelete Buffer+buffer
<leader>boDelete Other Buffers+buffer
<leader>bDDelete Buffer and Window+buffer
<leader>bpToggle Pin (bufferline)+buffer
<leader>bjPick Buffer (bufferline)+buffer
<leader>ufToggle Auto Format (Global)+ui
<leader>usToggle Spelling+ui
<leader>uwToggle Wrap+ui
<leader>ulToggle Line Numbers+ui
<leader>uLToggle Relative Number+ui
<leader>udToggle Diagnostics+ui
<leader>uhToggle Inlay Hints+ui
<leader>uCColorschemes+ui
<leader>uzToggle Zen Mode+ui
<leader>xxDiagnostics (Trouble)+diagnostics
<leader>xXBuffer Diagnostics (Trouble)+diagnostics
<leader>xlLocation List+diagnostics
<leader>xqQuickfix List+diagnostics
<leader>xtTodo (Trouble)+diagnostics
<leader>qqQuit All+quit/session
<leader>qsRestore Session (persistence)+quit/session
<leader>qlRestore Last Session+quit/session
<leader>qdDon't Save Current Session+quit/session
<leader>wdDelete Window+windows
<leader>wmToggle Zoom Mode+windows
gd / gr / gI / gy / gDLSP: Definition, Referenzen, Implementierung, Typdefinition, Deklarationohne Leader
KLSP-Hover (Dokumentation)ohne Leader
gK · <C-k> (Einfügen)Signature Helpohne Leader
s / SFlash: Sprung / Treesitter-Auswahl (flash.nvim)ohne Leader
<S-h> / <S-l> · [b / ]bvorheriger / nächster Buffer (bufferline.nvim)ohne Leader
<C-h/j/k/l>zum Fenster links/unten/oben/rechtsohne Leader
<A-j> / <A-k>Zeile(n) nach unten/oben verschiebenohne Leader
<C-s>Datei speichern (auch im Einfügemodus)ohne Leader
]d [d · ]e [e · ]w [wnächste/vorige Diagnose · Fehler · Warnungohne Leader
]h [hnächster/voriger Git-Hunk (gitsigns.nvim)ohne Leader
]t [tnächster/voriger TODO-Kommentar (todo-comments.nvim)ohne Leader
]] [[nächste/vorige Referenz des Symbolsohne Leader
gco / gcOKommentarzeile darunter/darüber einfügenohne Leader
<C-/>Terminal (Root Dir) ein-/ausblenden (snacks.nvim)ohne Leader
<Esc>zusätzlich: Suchhervorhebung löschenohne Leader

Quelle: lazyvim.org/keymaps und die Plugin-Specs von LazyVim (abgerufen am 24.09.2026). Nur Standardbelegungen; Extras bringen weitere mit. In Neovim zeigt ␣ s k (Keymaps-Picker) die tatsächlich aktiven Belegungen.

🧾 Voraussetzungen

Neovim ≥ 0.11.2mit LuaJIT gebaut
Git ≥ 2.19.0für partielle Klone
Nerd Font (v3.0+)optional, für Icons
lazygitoptional, für <leader>gg
tree-sitter-cli + C-Compilerfür nvim-treesitter
curlfür die Vervollständigung
fzf (≥ 0.25.1), ripgrep, fdfür die Picker
Terminal mit True Color + Undercurlz. B. kitty, wezterm, alacritty, iTerm2, ghostty

Quelle: lazyvim.org · macOS z. B. brew install neovim git lazygit ripgrep fd fzf

🛠️ Installation (Linux/macOS)

# 1) Bestehende Konfiguration sichern (falls vorhanden)
mv ~/.config/nvim{,.bak}
mv ~/.local/share/nvim{,.bak}
mv ~/.local/state/nvim{,.bak}
mv ~/.cache/nvim{,.bak}

# 2) Starter-Vorlage holen
git clone https://github.com/LazyVim/starter ~/.config/nvim

# 3) .git entfernen – die Konfiguration gehört jetzt dir
rm -rf ~/.config/nvim/.git

# 4) Neovim starten – lazy.nvim installiert alle Plugins
nvim

# 5) In Neovim prüfen, ob alles läuft
:LazyHealth

Laut lazyvim.org/installation. Danach: ␣ abwarten – which-key zeigt das Menü. :Lazy verwaltet Plugins, :LazyExtras die Extras, :Mason die Sprachserver.