Neovim als Standard-Editor — Aufbau eines modernen Workflows
Neovim als Standard-Editor — Aufbau eines modernen Workflows
Abschnitt betitelt „Neovim als Standard-Editor — Aufbau eines modernen Workflows“Heute habe ich Neovim 0.12 auf meinem Manjaro-System von einem Minimal-Setup zu einem vollständigen Developer-Workflow aufgebaut. Keine Distribution wie LazyVim oder NvChad — alles selbst konfiguriert, modular in Lua, mit modernsten Plugins.
Der Ausgangspunkt
Abschnitt betitelt „Der Ausgangspunkt“Mein init.lua hatte genau drei Zeilen:
vim.o.grepprg = 'rg --vimgrep'vim.o.grepformat = '%f:%l:%c:%m'Ripgrep als Suchmaschine — das wars. Kein Plugin-Manager, kein LSP, keine Syntax-Highlighting-Plugins, kein Farbschema. Ein blanker Schlssel.
Interessant: Neovim 0.12.3 ist auf Manjaro aktuell und bringt schon einiges Built-in — Lua-First-Konfiguration, integriertes LSP-Client-Framework, und einen neuen vim.lsp.config API, der das alte lspconfig-Muster ablöst.
Das Fundament: lazy.nvim und modulare Lua-Konfiguration
Abschnitt betitelt „Das Fundament: lazy.nvim und modulare Lua-Konfiguration“Ich habe mich für lazy.nvim als Plugin-Manager entschieden. Der große Vorteil: Plugins werden nur geladen, wenn sie benötigt werden — ob per Event (BufReadPost), per Tastenkombination, oder beim Start. Das hält die Startup-Zeit niedrig.
Die Konfiguration ist modular in lua/ gegliedert:
~/.config/nvim/lua/├── core/init.lua # Globale Einstellungen├── core/keymaps.lua # Tastenkombinationen├── plugins/ # Plugin-Spezifikationen└── lsp/init.lua # LSP-KonfigurationJedes Plugin ist eine einzelne Lua-Datei, die eine lazy.nvim-Spezifikation zurückgibt. Klar, überschaubar, leicht zu erweitern.
LSP statt Syntax-Highlighting
Abschnitt betitelt „LSP statt Syntax-Highlighting“Der klassische Weg — Syntax-Dateien für jedes Filetype — ist tot. Stattdessen Language Server Protocol: der gleiche Server, der in VS Code läuft, liefert jetzt auch in Neovim Code-Vervollständigung, Go-to-Definition, Refactoring, und Diagnostics.
Was mich überrascht hat: Neovim 0.12 hat vim.lsp.config als neuen Weg, LSP-Server zu konfigurieren. Die alte nvim-lspconfig ist jetzt ein Deprecated-“Framework”. So geht es modern:
vim.lsp.config["pyright"] = { capabilities = capabilities, on_attach = on_attach,}vim.lsp.enable("pyright")Achtung: Die LSP-Server selbst werden von Neovim nicht mitgeliefert. Ich habe über pacman installiert: pyright, ruff, typescript-language-server, lua-language-server, bash-language-server, yaml-language-server, tailwindcss-language-server, eslint-language-server. Acht Server, acht Sprachen abgedeckt.
Autocompletion mit blink.cmp
Abschnitt betitelt „Autocompletion mit blink.cmp“Hier gab es eine echte Lernkurve. Das klassische nvim-cmp wird langsam von blink.cmp abgelöst — ein komplett in Rust geschriebener Fuzzy-Matcher, der deutlich schneller ist und Tippfehler toleriert.
Die Installation über lazy.nvim mit einem Release-Tag lädt vorgebaute Binaries — kein Rust-Toolchain nötig:
{ "saghen/blink.cmp", dependencies = { "rafamadriz/friendly-snippets" }, version = "1.*", opts = { keymap = { preset = "default" }, sources = { default = { "lsp", "path", "snippets", "buffer" } }, },}Die Erfahrung: Ctrl+Space öffnet das Menü, Ctrl+y akzeptiert. LSP-Vervollständigungen sind sofort da, Pfade werden vorgeschlagen, Snippets sind dabei. Fühlt sich an wie VS Code, nur ohne den Electron-Overhead.
Fuzzy Finding mit Telescope
Abschnitt betitelt „Fuzzy Finding mit Telescope“Telescope.nvim ist der File-Finder und Live-Grep von Neovim. Space f f durchsucht alle Dateien im Projekt, Space f g grept live mit ripgrep. Der FZF-Extension bringt noch besseres Ranking.
Was ich mag: Der Preview zeigt den Dateiinhalt rechts neben der Ergebnisliste. Man sieht den Kontext, bevor man die Datei öffnet. Und die ripgrep-Integration ist nahtlos — genau die gleichen Suchen wie auf der Kommandozeile.
Git-Integration mit gitsigns
Abschnitt betitelt „Git-Integration mit gitsigns“Gitsigns zeigt die Git-Changes direkt in der Sign-Spalte — + für hinzugefügt, ~ für geändert, _ für gelöscht. Mit Space g p und Space g n springt man von Hunk zu Hunk. Space g s staged einen Hunk, Space g r resetet ihn.
Alles visuell, alles im Editor. Kein git diff im Terminal mehr nötig.
Was als Nächstes kommt
Abschnitt betitelt „Was als Nächstes kommt“Einige Dinge, die auf der Liste stehen:
telescope-fzf-nativefür noch besseres Fuzzy-Ranking (Rust-Backend statt Lua)nvim-navicfür LSP-basierte Navigation in der Statusleisteoil.nvimals Dateibrowser, der den Dateisystem-Inhalt direkt als Buffer darstellt- Eigene Snippets für wiederkehrende Patterns (PHP-Controller, Python-Test-Klassen)
mason.nvimfür automatisches LSP-Server-Management (statt pacman-Pakete)
Nächstes: Die telescope-Erweiterungen ausprobieren und entscheiden, ob oil.nvim den nvim-tree ersetzen soll — oder ob beides seinen Platz hat.
Ein begleitender Cheat Sheet fasst die wichtigsten Tastenkürzel zusammen: Neovim Cheat Sheet.