Neovim Einsteiger-Guide – Terminal-Editor lernen von Grund auf
Neovim ist kein normaler Texteditor. Er arbeitet modal – das heißt, du wechselst zwischen verschiedenen Modi, statt dauerhaft mit der Maus zu navigieren. Das macht ihn zu einem der schnellsten Editoren überhaupt, sobald man die Logik dahinter versteht.
Mit Neovim 0.11 hat der Editor außerdem eine ausgereifte native LSP-Integration (Language Server Protocol) erhalten – vollständige IDE-Funktionen ohne schwere Plugins.
Warum Neovim statt VS Code?
Das ist keine ideologische Frage. Beides hat seinen Platz. Neovim lohnt sich wenn:
- Du häufig auf Servern arbeitest (Neovim läuft im Terminal, ohne GUI)
- Du Geschwindigkeit über Komfort stellst
- Du keine Maus nutzen willst
- Du ein hochgradig anpassbares System willst
- Du Spaß daran hast, deine Werkzeuge zu verstehen
Fakten (Stand Januar 2026):
- Neovim hat fast 96.000 GitHub Stars – mehr als Vim (40.000)
- Im Stack Overflow Developer Survey 2025: Neovim als meist bewundertes Entwicklungsumgebung (5. Jahr in Folge)
Installation
Ubuntu / Debian
# Über apt (oft etwas ältere Version)
sudo apt update && sudo apt install -y neovim
# Aktuelle Version über GitHub Releases (empfohlen)
curl -LO https://github.com/neovim/neovim/releases/latest/download/nvim-linux-x86_64.tar.gz
sudo rm -rf /opt/nvim
sudo tar -C /opt -xzf nvim-linux-x86_64.tar.gz
sudo ln -sf /opt/nvim-linux-x86_64/bin/nvim /usr/local/bin/nvim
Fedora
sudo dnf install -y neovim
Arch Linux
sudo pacman -S neovim
Version prüfen
nvim --version
# NVIM v0.11.6
# Build type: Release
# LuaJIT 2.1.0
Die drei Modi: Normal, Insert, Visual
Das Wichtigste an Vim/Neovim: Es gibt Modi. Das ist anfangs ungewohnt, danach intuitiv.
| Modus | Zweck | Aktivierung |
|---|---|---|
| Normal | Navigation, Befehle | Esc |
| Insert | Text eingeben | i, a, o, I, A, O |
| Visual | Text markieren | v, V, Strg+v |
| Command | Dateioperationen | : |
Wichtig: Du startest immer im Normal-Modus
Öffnen → Normal-Modus
↓ i/a/o
Insert-Modus (Text schreiben)
↓ Esc
Normal-Modus
↓ :w Enter
Gespeichert
Die häufigste Anfängerfrage: "Wie komme ich raus?"
→ Esc, dann :q (beenden) oder :q! (ohne Speichern beenden)
Navigation ohne Maus
Im Normal-Modus (nach Esc):
Basis-Bewegung
h ← Zeichen links
l → Zeichen rechts
j ↓ Zeile runter
k ↑ Zeile hoch
Diese vier Tasten sind die Grundlage. Die Pfeiltasten funktionieren auch, aber h/j/k/l ist schneller.
Wort-Bewegung
w → Wort vorwärts (Anfang)
e → Wort vorwärts (Ende)
b → Wort rückwärts
W → Wort vorwärts (ignoriert Satzzeichen)
B → Wort rückwärts (ignoriert Satzzeichen)
Zeilennavigation
0 Zeilenanfang
^ Erstes Nicht-Leerzeichen der Zeile
$ Zeilenende
gg Erste Zeile der Datei
G Letzte Zeile der Datei
50G Zu Zeile 50 springen
:50 Zu Zeile 50 springen (Command-Modus)
Bildschirmnavigation
Strg+f Seite runter (forward)
Strg+b Seite hoch (backward)
Strg+d Halbe Seite runter
Strg+u Halbe Seite hoch
zz Aktuelle Zeile in Mitte des Bildschirms
In Klammern/Tags springen
% Zur passenden Klammer springen ( → ) oder { → }
Dateien öffnen, speichern, beenden
:w Datei speichern (write)
:w datei Unter neuem Namen speichern
:q Beenden (nur wenn keine Änderungen)
:q! Beenden ohne Speichern (!)
:wq Speichern und beenden
ZZ Speichern und beenden (Kurzform)
ZQ Beenden ohne Speichern (Kurzform)
:e datei Andere Datei öffnen (edit)
:e! Datei neu laden (Änderungen verwerfen)
:Ex Datei-Explorer öffnen (eingebaut)
Neovim aufrufen
# Datei öffnen
nvim datei.py
# Mehrere Dateien
nvim datei1.py datei2.py
# Verzeichnis öffnen
nvim .
Text bearbeiten: Operatoren und Bewegungen
Das Geniale an Vim ist das Kompositionsprinzip: Operator + Bewegung.
d löschen (delete)
c ändern (change = löschen + Insert-Modus)
y kopieren (yank)
p einfügen (paste)
Kombiniert mit Bewegungen:
dw Wort löschen (delete word)
dd Ganze Zeile löschen
D Bis Zeilenende löschen
cw Wort ändern (löschen + Insert)
cc Ganze Zeile ändern
yy Zeile kopieren
yw Wort kopieren
p Nach Cursor einfügen
P Vor Cursor einfügen
Rückgängig / Wiederholen
u Rückgängig (undo)
Strg+r Wiederholen (redo)
. Letzten Befehl wiederholen (sehr mächtig!)
Insert-Modus öffnen
i Insert vor Cursor
a Insert nach Cursor (append)
I Insert am Zeilenanfang
A Insert am Zeilenende
o Neue Zeile nach aktueller, Insert-Modus
O Neue Zeile vor aktueller, Insert-Modus
Ersetzen
r<Zeichen> Zeichen unter Cursor ersetzen
R Replace-Modus (überschreibt)
Visual Mode: Text markieren
v Zeichenweise markieren
V Zeilenweise markieren
Strg+v Block-Markierung (sehr mächtig!)
Nach Markierung: Operator anwenden (d löschen, y kopieren, c ändern, > einrücken)
Einrückung
>> Zeile einrücken
<< Zeile ausrücken
= Auto-Einrückung (Visual: markierten Block)
Suchen und Ersetzen
Suchen
/suchbegriff Vorwärts suchen
?suchbegriff Rückwärts suchen
n Nächstes Ergebnis
N Vorheriges Ergebnis
* Wort unter Cursor suchen (vorwärts)
# Wort unter Cursor suchen (rückwärts)
Suchen und Ersetzen (Substitute)
:s/alt/neu/ Erste Übereinstimmung in aktueller Zeile
:s/alt/neu/g Alle in aktueller Zeile (global)
:%s/alt/neu/g Alle in der gesamten Datei
:%s/alt/neu/gc Mit Bestätigung für jede Ersetzung (confirm)
:%s/alt/neu/gi Groß-/Kleinschreibung ignorieren
Beispiel:
:%s/console\.log/logger.debug/g
Reguläre Ausdrücke
:%s/\bFoo\b/Bar/g Nur ganzes Wort "Foo"
:%s/^\s\+//g Führende Leerzeichen entfernen
:%s/\s\+$//g Leerzeichen am Zeilenende entfernen
Splits und mehrere Dateien
Splits erstellen
:split datei.py Horizontal splitten (neue Datei)
:vsplit datei.py Vertikal splitten
:sp Shortform horizontal
:vsp Shortform vertikal
Tastatur-Shortcuts:
Strg+w h Zu linkem Split
Strg+w l Zu rechtem Split
Strg+w j Zu unterem Split
Strg+w k Zu oberem Split
Strg+w = Alle Splits gleich groß
Strg+w q Split schließen
Buffer-Verwaltung
:ls Alle offenen Buffer anzeigen
:b 2 Buffer 2 öffnen
:bn Nächster Buffer
:bp Vorheriger Buffer
:bd Buffer schließen
Tabs
:tabnew datei.py Neue Tab öffnen
gt Nächster Tab
gT Vorheriger Tab
:tabclose Tab schließen
Konfiguration: init.lua
Neovim konfigurierst du mit Lua (seit Neovim 0.5). Die Konfigurationsdatei liegt unter:
~/.config/nvim/init.lua
Minimale Startkonfiguration
mkdir -p ~/.config/nvim
nano ~/.config/nvim/init.lua
-- Zeilennummern
vim.opt.number = true
vim.opt.relativenumber = true
-- Einrückung
vim.opt.tabstop = 2
vim.opt.shiftwidth = 2
vim.opt.expandtab = true -- Spaces statt Tabs
-- Suche
vim.opt.ignorecase = true
vim.opt.smartcase = true -- Case-sensitive wenn Großbuchstabe im Suchbegriff
vim.opt.hlsearch = true
vim.opt.incsearch = true
-- UI
vim.opt.termguicolors = true
vim.opt.scrolloff = 8 -- 8 Zeilen Abstand zum Bildschirmrand beim Scrollen
vim.opt.signcolumn = "yes"
-- Clipboard: System-Zwischenablage nutzen
vim.opt.clipboard = "unnamedplus"
-- Kein Backup/Swap-Files (optional)
vim.opt.swapfile = false
vim.opt.backup = false
-- Leader-Taste auf Leertaste setzen (Standard bei vielen Konfigurationen)
vim.g.mapleader = " "
-- Nützliche Keymaps
local map = vim.keymap.set
map("n", "<leader>w", ":w<CR>", { desc = "Datei speichern" })
map("n", "<leader>q", ":q<CR>", { desc = "Beenden" })
map("n", "<Esc>", ":nohlsearch<CR>", { desc = "Suche-Highlighting löschen" })
LazyVim: vollwertige IDE in 5 Minuten
LazyVim ist eine vorgefertigte Neovim-Konfiguration, die dir sofort eine IDE-ähnliche Erfahrung gibt: Dateibaum, Fuzzy-Finder, Git-Integration, LSP, Autocomplete.
Installation
# Alte Konfiguration sichern (falls vorhanden)
mv ~/.config/nvim ~/.config/nvim.bak
mv ~/.local/share/nvim ~/.local/share/nvim.bak
# LazyVim Starter klonen
git clone https://github.com/LazyVim/starter ~/.config/nvim
# Temporäre Initialisierungsdateien entfernen
rm -rf ~/.config/nvim/.git
# Neovim starten – Plugins werden automatisch installiert
nvim
Beim ersten Start lädt LazyVim alle Plugins herunter (~1–2 Minuten).
Die wichtigsten LazyVim-Shortcuts
<Space> Leader-Taste (Basis für alle Shortcuts)
<Space>ff Datei suchen (Fuzzy Finder)
<Space>fg In Dateien suchen (Grep)
<Space>e Dateibaum (neo-tree) öffnen/schließen
<Space>gg Lazygit öffnen (Git-UI)
<Space>bd Buffer schließen
<Space>? Alle verfügbaren Befehle anzeigen
K Dokumentation unter Cursor
gd Definition springen
gr Alle Referenzen zeigen
<Space>ca Code Actions
Extras installieren
# In Neovim: Plugin-Browser öffnen
:Lazy
Weitere LazyVim-Extras (Sprach-Support, Tools) über :LazyExtras.
Native LSP in Neovim 0.11
Ab Neovim 0.11 kannst du LSP ohne nvim-lspconfig konfigurieren. Die neuen APIs sind einfacher:
-- ~/.config/nvim/init.lua oder in einem separaten File
-- LSP-Server aktivieren (Neovim 0.11+)
vim.lsp.enable('pyright') -- Python
vim.lsp.enable('ts_ls') -- TypeScript/JavaScript
vim.lsp.enable('lua_ls') -- Lua
vim.lsp.enable('bashls') -- Bash
-- LSP konfigurieren
vim.lsp.config('pyright', {
settings = {
python = {
analysis = {
typeCheckingMode = "basic",
}
}
}
})
Language Server installieren (separat nötig):
# Python: pyright
npm install -g pyright
# Bash: bash-language-server
npm install -g bash-language-server
# Lua: lua-language-server
sudo apt install lua-language-server # Ubuntu/Debian
LSP-Keymaps (automatisch verfügbar wenn LSP aktiv)
K Hover-Dokumentation
gd Zur Definition springen
gD Zur Deklaration springen
gi Zu Implementierungen springen
gr Referenzen anzeigen
<C-k> Signatur-Hilfe (Parameter-Info)
]d / [d Zum nächsten/vorherigen Diagnostic
Häufige Probleme
„Wie beende ich Neovim!?"
Einfachster Weg:
Esc → :q! → Enter
Swap-Datei gefunden beim Öffnen
E325: ATTENTION - Found a swap file...
Passiert wenn Neovim unsauber beendet wurde:
R = Datei aus Swap-Datei wiederherstellen
D = Swap-Datei löschen, Original öffnen
Q = Beenden
Schriftzeichen werden falsch dargestellt
Neovim braucht eine Nerd Font für Icons. Installiere eine Nerd Font:
# Nerd Font herunterladen (z.B. JetBrainsMono)
mkdir -p ~/.local/share/fonts
cd ~/.local/share/fonts
curl -LO "https://github.com/ryanoasis/nerd-fonts/releases/latest/download/JetBrainsMono.tar.xz"
tar -xf JetBrainsMono.tar.xz
fc-cache -f -v
Im Terminal-Emulator diese Font auswählen.
LazyVim-Plugin lädt nicht
:Lazy sync
# oder
:Lazy update
LSP startet nicht
:LspInfo # Zeigt Status aller LSP-Server für aktuelle Datei
:LspLog # Log-Datei öffnen
:checkhealth # Gesundheitscheck für alle Komponenten
Fazit
Neovim braucht eine Eingewöhnungszeit von etwa einer Woche. Danach arbeitest du schneller und effizienter als mit jedem anderen Editor – besonders auf Servern, wo du keine GUI hast.
Lernpfad:
- Woche 1:
h j k l,:w,:q,i,Esc– mehr brauchst du zunächst nicht - Woche 2:
d,c,y,p,/– Operatoren und Bewegungen - Woche 3: LazyVim installieren, LSP einrichten
- Danach: Konfiguration nach eigenem Bedarf erweitern
Neovim 0.11.6 | Tested on: Ubuntu 24.04 LTS, Debian 13 Trixie | Last updated: 2026-02-18