Vim oder Neovim zum ersten Mal zu öffnen ist für die meisten ein kleiner Kulturschock: ein nahezu leerer Bildschirm, eine Spalte aus Tildes, eine Statuszeile mit kryptischen Kürzeln — und keinerlei Hinweis, wie man Text eingibt oder den Editor wieder verlässt. Genau dieser erste Eindruck ist der Grund, warum die Frage „Wie verlasse ich Vim?" seit Jahren zu den meistgestellten auf StackOverflow gehört. Dieser Artikel führt Schritt für Schritt durch den ersten Start, erklärt, was du auf dem Bildschirm siehst, zeigt drei sichere Wege zum Beenden — und führt am Ende in vimtutor ein, das eingebaute 30-Minuten-Tutorial, das mehr Vim-Verständnis liefert als jede Doku. Wer es einmal komplett durchspielt, hat die Grund-Befehle nicht im Kopf, sondern in den Fingern.
Den Editor starten
Vim und Neovim werden aus der Shell gestartet — typischerweise mit oder ohne Datei-Argument. Beide Editoren akzeptieren dieselben Aufruf-Varianten:
# Editor ohne Datei öffnen — Splash-Screen erscheint
vim
nvim
# Eine vorhandene Datei öffnen (wird angelegt, falls sie fehlt)
vim notes.md
nvim ~/projects/server/config.toml
# Mehrere Dateien gleichzeitig — werden als Buffer-Liste geladen,
# die erste Datei ist im sichtbaren Buffer
nvim file1.txt file2.txt file3.txt
# Beim Start direkt auf Zeile 42 springen
nvim +42 script.py
# Read-only öffnen (Schreib-Operationen sind blockiert)
nvim -R wichtige-konfig.conf
# Sauberer Start ohne Konfiguration und Plugins — sehr nützlich
# zum Debuggen oder Vergleichen
nvim --clean # Neovim
vim -u NONE # VimDer --clean- bzw. -u NONE-Modus ist eine der wichtigsten Optionen für Anfänger und Profis gleichermaßen: er startet einen reinen Vanilla-Editor ohne ~/.vimrc, ohne init.lua, ohne Plugins. Wer ein Problem isolieren möchte („liegt das an meiner Konfig oder an Vim selbst?"), beantwortet die Frage in zwei Sekunden mit diesem Flag.
Was du auf dem Bildschirm siehst
Nach einem nackten vim (oder nvim) erscheint der Splash-Screen — eine zentrierte Begrüßung mit Versions-Info und ein paar Hinweisen, wie man die Doku öffnet. Sobald du etwas tippst oder eine Datei lädst, verschwindet er und gibt den Blick auf den eigentlichen Editor-Bereich frei. Drei Zonen sind sichtbar:
~ ← Buffer-Bereich
~ (Datei-Inhalt)
~
~
~
~
~
~ ← ~ = leere Zeilen
~ nach Dateiende
~
notes.md 1,1 All ← Statusline
: ← Command-Line
Der Buffer-Bereich ist das, was die meisten Editoren „die Datei" nennen. In Vim heißt er Buffer — das ist der im Speicher gehaltene Inhalt, der zur Datei gehört (oder, falls noch nichts gespeichert wurde, später zu einer Datei werden soll). Mehr zum Buffer-Konzept im Kapitel Buffer, Fenster & Tabs.
Die Tilde-Zeilen (~ am linken Rand) markieren Zeilen, die nicht zur Datei gehören — der Editor signalisiert damit: „hier ist die Datei zu Ende, alles darunter ist nur Display-Padding". Wer eine leere Datei öffnet, sieht ausschließlich Tildes. Das ist nicht kaputt, sondern Absicht.
Die Statusline ist die zweitunterste Zeile. In einem nackten Vim zeigt sie standardmäßig: links den Dateinamen, rechts Cursor-Position (Zeile, Spalte) und die sichtbare Position im Buffer (Top, Bot, All, oder ein Prozent-Wert). Sobald eine Konfiguration mit set ruler oder ein Statusline-Plugin wie lualine aktiv ist, erscheinen hier zusätzlich Modus, Git-Branch, Diagnostics und mehr.
Die Command-Line ist die unterste Zeile. Sie hat zwei Funktionen, die du dir merken solltest: Erstens dient sie als Eingabe für Ex-Befehle, sobald du : drückst. Zweitens dient sie als Echo-Area für Meldungen — wenn Vim dir etwas mitteilen will („1 Treffer ersetzt", „Datei geändert seit dem letzten Speichern"), erscheint die Meldung hier.
Du bist im Normal-Mode — was bedeutet das?
Nach dem Start steht Vim im Normal-Mode. Das ist der wichtigste und gleichzeitig irritierendste Fakt für Vim-Neulinge: Tastendrücke sind keine Eingabe, sondern Befehle. Wer auf der Tastatur „hallo" tippt, schreibt nicht das Wort „hallo" in den Buffer — sondern führt vier separate Vim-Befehle aus:
- h — Cursor ein Zeichen nach links
- a — wechsle in den Insert-Mode, hinter dem Cursor
- l — (jetzt im Insert-Mode: schreibt das Zeichen „l")
- l — (schreibt noch ein „l")
- o — (schreibt das „o")
Das Ergebnis: in der Datei steht „llo", und du bist im Insert-Mode. Das ist nicht intuitiv — und genau deshalb ist die erste Lektion: bevor du tippst, brauchst du einen Insert-Mode.
Es gibt mehrere Wege hinein:
- i — Insert vor dem Cursor (i = „insert")
- a — Insert nach dem Cursor (a = „append")
- I — Insert am Zeilenanfang (übersprungene Whitespaces)
- A — Insert am Zeilenende
- o — neue Zeile darunter öffnen, dort Insert (o = „open below")
- O — neue Zeile darüber öffnen, dort Insert
Im Insert-Mode verhält sich Vim wie jeder andere Editor: Tippen schreibt Zeichen, Backspace löscht. Aus dem Insert-Mode zurück in den Normal-Mode kommst du mit Esc — oder, weil Esc auf vielen Tastaturen weit weg liegt, mit der gleichwertigen Kombination Ctrl-[. (Viele Vim-Profis legen sich später jk oder jj als Esc-Ersatz auf — Thema des Konfigurations-Kapitels.)
Welcher Modus aktiv ist, zeigt die unterste Zeile in Form von -- INSERT --, -- VISUAL --, -- REPLACE --. Im Normal-Mode steht dort nichts — Stille ist der Default.
Sicher beenden — fünf Wege
Das berüchtigtste Problem bei Vim ist nicht das Lernen, sondern das Verlassen. Wer den Editor ohne Vorwissen geöffnet hat, sucht reflexhaft nach <Ctrl-C>, <Ctrl-Q>, dem x-Knopf — keiner davon funktioniert. Die richtige Antwort beginnt immer gleich: zuerst sicherstellen, dass du im Normal-Mode bist. Im Zweifelsfall einmal kräftig Esc drücken — kein Vim-Befehl funktioniert in einem anderen Modus.
Aus dem Normal-Mode führen dann fünf Wege nach draußen:
| Befehl | Bedeutung | Wann benutzen |
|---|---|---|
| :q | Quit — beenden, falls keine ungespeicherten Änderungen | Standard-Weg, wenn nichts zu speichern ist |
| :q! | Quit ohne Speichern — Änderungen werden verworfen | Wenn du den Buffer wegwerfen willst |
| :w | Write — speichern (bleibt offen) | Zwischenspeichern, ohne den Editor zu verlassen |
| :wq | Write + Quit — speichern und beenden | Häufigste Variante beim normalen Arbeitsende |
| :x | Wie :wq, schreibt aber nur, wenn wirklich Änderungen vorliegen | Sparsamer (vermeidet unnötiges Touchen der Datei-Mtime) |
| ZZ | Wie :x — speichern und beenden, ohne Doppelpunkt | Profi-Reflex für „fertig, raus" |
| ZQ | Wie :q! — beenden ohne speichern, ohne Doppelpunkt | Wenn du den Buffer endgültig wegwerfen willst |
Wenn du :q versuchst und Vim mit E37: No write since last change antwortet, weiß der Editor: Es gibt ungespeicherte Änderungen. Du musst dich entscheiden — :w zum Speichern oder :q! zum Verwerfen. Das ist kein Bug, sondern eine bewusste Schutzvorrichtung. Bei mehreren offenen Buffern verwendest du :qa (quit all) bzw. :wqa (write all + quit all) oder :qa! als Notausgang.
Drei zusätzliche Befehle, die im Alltag oft helfen:
- :w newfile.txt — schreibt den Buffer unter einem neuen Namen (analog zu „Speichern unter").
- :e! — wirft alle ungespeicherten Änderungen weg und lädt die Datei frisch von der Festplatte (z. B. wenn du extern editiert hast).
- :! ls -la — führt einen Shell-Befehl aus, ohne Vim zu verlassen; mit
:!%referenzierst du die aktuelle Datei.
Eine erste, vollständige Mini-Session
Probier es einmal als zusammenhängende Übung — am besten in einer frischen Datei in einem unkritischen Verzeichnis:
cd /tmp
nvim test.mdDu landest auf dem Splash-Screen oder direkt in einem leeren Buffer (sobald du tippst, verschwindet der Splash). Jetzt der Reihe nach:
- i drücken — die Statusline zeigt
-- INSERT --. # Mein erster Vim-Testtippen, Enter,Das ist eine zweite Zeile.tippen.- Esc drücken — die
-- INSERT ---Anzeige verschwindet. - gg — Cursor an den Anfang der Datei (das ist eine Normal-Mode-Motion).
- $ — Cursor ans Ende der ersten Zeile.
- o — neue Zeile darunter öffnen, automatisch im Insert-Mode.
Eine dritte Zeile, eingefügt mit o.tippen.- Esc — zurück in den Normal-Mode.
:wtippen, Enter — Datei gespeichert. Die Statusline meldet"test.md" 3L, 78B written(3 Zeilen, 78 Bytes).:qtippen, Enter — du bist zurück in der Shell.
cat /tmp/test.md zeigt, was du gerade geschrieben hast. Du hast Vim erfolgreich geöffnet, editiert, gespeichert und verlassen — die häufigste Vim-Erstbenutzer-Krise ist überwunden.
vimtutor: die wichtigsten 30 Minuten deines Vim-Lebens
vimtutor ist ein interaktives Tutorial, das mit jedem Vim und jedem Neovim mitgeliefert wird. Es ist eine echte Textdatei, die du im Editor bearbeitest — du liest die Anweisungen direkt im Buffer, führst die Übungen am Beispiel-Text in derselben Datei aus und siehst sofort, was passiert. Diese Selbstbezüglichkeit ist der pädagogische Kniff: Du lernst Vim, indem du Vim auf eine Vim-Übungsdatei anwendest.
Aufruf:
# Für Vim — eigenständiges Kommando
vimtutor
# In Neovim — als Ex-Befehl im laufenden Editor
nvim
:Tutor
# Sprache wählen — vimtutor unterstützt Übersetzungen
vimtutor de # deutsche Version
vimtutor fr # französisch
vimtutor en # explizit englisch (Original)Das Tutorial deckt in sieben Lektionen genau die Grundlagen ab, die ein Vim-Anfänger braucht:
- Lektion 1 — Cursor-Bewegung mit
h j k l, Text löschen mitx, einfügen miti/a, sicher beenden mit:wq. - Lektion 2 — Operatoren mit Counts (
d3w= lösche drei Wörter), undo mitu, redo mit Ctrl-R. - Lektion 3 — Put nach Delete (
p), Replace einzelner Zeichen mitr, Change-Operatorc. - Lektion 4 — Zeilen-Positionen mit
gg/G/0/$, Suche mit/und?,%für Klammer-Matching,:sfür Ersetzen. - Lektion 5 — Shell-Befehle mit
:!, Schreiben in andere Dateien, Lesen via:r filename,:r !cmdfür Shell-Output. - Lektion 6 —
oundOfür neue Zeilen,Rfür Replace-Mode, Yank und Put als Copy-Paste, Optionen mit:set. - Lektion 7 — Help-System (
:help), Vimscript-Konfig in~/.vimrc, Completion mit Ctrl-D und Tab.
Die Empfehlung ist nicht „lesen", sondern „ausprobieren". Jede Übung im Tutorial verlangt, dass du den Beispiel-Text im selben Buffer veränderst — die Anweisung steht direkt darüber, das Übungs-Material direkt darunter, und du siehst in Echtzeit, ob du den Befehl richtig verstanden hast. Wer das einmal komplett durchspielt (echte 30 Minuten, nicht überfliegen), hat alle Grund-Befehle in den Fingern — und kann mit dem Konzept-Teil dieser Doku (Modi, Motions, Operators) deutlich mehr anfangen.
Das Tutorial überschreibt keine echten Dateien — beim Start kopiert es sich in eine temporäre Datei (/tmp/tutorXXXXXX oder ähnlich), die du nach Lust und Laune zerstören darfst. Beim nächsten vimtutor-Aufruf bekommst du eine frische, unveränderte Kopie.
Hilfe im Editor — :help als erste Anlaufstelle
Wenn dir während des Tutorials oder später ein Befehl unklar ist, brauchst du nicht das Web zu öffnen. Vim und Neovim haben ein vollständiges Hilfe-System an Bord:
:help " Hauptseite des Hilfe-Systems
:help :w " Hilfe zum :w-Ex-Befehl
:help dw " Hilfe zur Motion-Operator-Kombination dw
:help <C-w> " Hilfe zum Window-Prefix <Ctrl-w>
:help i_CTRL-W " Insert-Mode: <Ctrl-w> (Wort löschen)
:help options " Liste aller Konfigurations-OptionenIn einem Help-Buffer kannst du Tag-Links über Ctrl-] verfolgen und mit Ctrl-T zurückspringen — das macht die Hilfe zu einer kleinen Hypertext-Doku, in der du dich frei bewegen kannst. :q schließt den Help-Buffer wieder.
Eine besonders nützliche Variante: :helpgrep pattern durchsucht die gesamte Hilfe nach einem Muster, die Treffer landen in der Quickfix-Liste. Damit findest du auch dann, was du suchst, wenn du den genauen :help-Tag-Namen nicht kennst.
Interessantes
Esc, Ctrl-[ und Ctrl-C sind nicht ganz gleichwertig
Esc und Ctrl-[ bringen dich aus dem Insert-Mode zurück in den Normal-Mode — sie sind funktional identisch. Ctrl-C tut das auch, aber ohne Insert-Mode-Autocommands auszulösen (z. B. InsertLeave). Im Alltag sind beide okay; nur bei Plugins, die auf InsertLeave reagieren, macht der Unterschied einen Unterschied.
Splash-Screen verschwindet beim ersten Tastendruck
Der Splash-Screen ist nur sichtbar, solange der Buffer wirklich leer ist. Sobald du i drückst und tippst, ist er weg. Wer ihn dauerhaft loswerden möchte: set shortmess+=I in der Konfig — Neovim 0.10+ blendet ihn ohnehin standardmäßig dezenter ein.
Die ~-Zeilen sind ein UI-Element, kein Inhalt
Anfänger fragen oft, ob die Tilden „mitkopiert" werden oder ob die Datei sie enthält. Nein — die ~-Zeichen sind reine Display-Markierung von Vim, um den Bereich nach Dateiende sichtbar zu machen. In der gespeicherten Datei stehen sie nicht.
Im Zweifel: zweimal Esc, dann :q!
Wenn du komplett die Orientierung verlierst, ist das die universelle Notbremse: Esc, Esc, :, q!, Enter. Damit verlässt du Vim aus jedem Modus heraus — und beim nächsten Versuch ist alles sauber.
`:Tutor` ist die moderne Lua-Variante von vimtutor
In Neovim ist :Tutor mehr als nur ein Wrapper um vimtutor: es ist eine eigene, interaktive Lua-Implementierung mit Highlight-Unterstützung, Fortschritts-Anzeige und Live-Validierung der Übungen. Wer Neovim nutzt, sollte :Tutor dem klassischen vimtutor vorziehen.
Wer ein zweites Mal hängt, hat die Lektion oft nicht zu Ende gemacht
Vimtutor baut konsequent aufeinander auf. Wer Lektion 2 überspringt und mit Lektion 5 weitermacht, wird Operatoren und Motions nicht zuordnen können. Die 30 Minuten sind eine Mindest-Investition — keine Maximalzeit.
Weiterführende Ressourcen
Externe Quellen
- Vim-Tutor User-Manual-Eintrag — offizielle Beschreibung des Tutorials.
- Neovim
:Tutor-Quellcode — Lua-Implementierung der modernen Variante mit Übersetzungen. - vim-adventures.com — gamifiziertes Vim-Lern-Spiel; die ersten Levels sind kostenlos.
- VimGolf — Vim-Befehls-Code-Golf für Fortgeschrittene, lehrt die Komposition.
- Vim Genius — Karteikarten-Training für Vim-Tastenkombinationen.