Neovim Einsteiger-Guide – Terminal-Editor lernen von Grund auf

Neovim installieren, die wichtigsten Befehle lernen und mit LazyVim eine vollwertige IDE im Terminal aufbauen. Für Einsteiger ohne Vorkenntnisse erklärt.

9 min Lesezeit

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)


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:

  1. Woche 1: h j k l, :w, :q, i, Esc – mehr brauchst du zunächst nicht
  2. Woche 2: d, c, y, p, / – Operatoren und Bewegungen
  3. Woche 3: LazyVim installieren, LSP einrichten
  4. Danach: Konfiguration nach eigenem Bedarf erweitern

Neovim 0.11.6 | Tested on: Ubuntu 24.04 LTS, Debian 13 Trixie | Last updated: 2026-02-18

War dieser Artikel hilfreich?