Vim ist ein modaler Texteditor — und für viele, die ihn ernsthaft lernen, irgendwann der Editor, durch den jede andere Tastatur-Bedienung träge wirkt. Statt „Buchstaben tippen plus Hotkeys" trennt Vim sauber zwischen Modi: einem zum Schreiben, einem zum Navigieren und Verändern, einem zum Markieren, einem für Datei- und Editor-Befehle. Aus dieser Trennung entsteht eine kleine Befehlssprache, in der Edits wie Sätze formuliert werden — d3w „lösche drei Wörter", ci" „ändere alles in den Anführungszeichen". Diese Doku behandelt Vim in der aktuellen Version 9.1 und ist bewusst auf das ursprüngliche Vim-Projekt fokussiert; für Neovim, den 2014 entstandenen Fork mit Lua-API, built-in LSP und Tree-sitter, gibt es eine eigenständige Doku unter /docs/neovim/.

Definition: Was ist Vim eigentlich?

Vim ist ein freier, plattformübergreifender Texteditor in der Tradition von vi — dem Standard-Editor jeder Unix-Installation seit den 1970er-Jahren. Der Name steht für „Vi IMproved", was den eigenen Anspruch beschreibt: alles, was vi gut konnte, plus die Erweiterungen, die ein moderner Editor braucht. Geschrieben in C, läuft Vim auf Linux, macOS, Windows, BSD, in jedem Terminal und in jeder SSH-Sitzung.

Das Besondere an Vim ist seine modale Bedienung. Statt mit Modifikator-Tasten jede Funktion an eine Tastenkombination zu binden, kennt Vim mehrere Modi mit jeweils unterschiedlicher Tastatur-Bedeutung:

  • Normal-Mode — der Default. Tasten sind keine Eingabe, sondern Befehle: navigieren, löschen, kopieren, suchen.
  • Insert-Mode — Tasten werden als Text in den Buffer geschrieben.
  • Visual-Mode — eine Region markieren, dann auf ihr einen Operator ausführen.
  • Command-Line-Mode — Ex-Befehle ausführen (Datei speichern, Suchen-und-Ersetzen, Plugins steuern).
  • Replace-Mode — Zeichen überschreiben statt einfügen.

Aus diesen Modi ergibt sich eine kleine, hochkomponierbare Befehlssprache. Operatoren wie d (delete), c (change), y (yank/kopieren) verbinden sich mit Motions (w Wort, $ Zeilenende) und Text-Objects (iw „inneres Wort", i" „Inhalt der Anführungszeichen") zu Edits, die sich lesen lassen wie natürliche Sprache:

  • dw — „lösche bis zum nächsten Wort"
  • ci( — „ändere den Inhalt der Klammern"
  • 5dd — „lösche fünf Zeilen"
  • >ap — „rücke den ganzen Absatz ein"

Diese Komposition ist Vims eigentliches Versprechen: keine endlose Tastenliste, sondern eine Grammatik, die man einmal lernt und dann auf alles anwendet.

Eine kurze Geschichte: von ed über vi zu Vim 9

Die Linie beginnt 1969 mit ed, dem zeilenorientierten Standard-Editor der frühen Unix-Welt. Aus ed ging 1976 vi hervor — geschrieben von Bill Joy in Berkeley als bildschirmorientierte Hülle um den verwandten ex. Vi blieb auf jeder Unix-Maschine vorinstalliert und prägte eine Generation von Entwicklern; seine Tastatur-Idiome (hjkl, :wq, /pattern) leben in jedem heutigen Vim-Befehl weiter.

Vim wurde 1991 von Bram Moolenaar zunächst für den Amiga geschrieben — als „Vi IMitation", später „Vi IMproved". Bram pflegte das Projekt mehr als drei Jahrzehnte lang fast im Alleingang; er starb 2023. Vim wird seither unter neuer Leitung weitergepflegt — die Release-Kadenz ist ruhig, aber stabil:

  • Vim 7.0 (2006) — Spell-Checking, Tabs, Undo-Branches.
  • Vim 8.0 (2016) — asynchrone Jobs, Packages, GTK3-GUI.
  • Vim 9.0 (2022) — Vim9script als neue, getypte und deutlich schnellere Skript-Sprache neben dem klassischen Vimscript.
  • Vim 9.1 (Stable 2026, Baseline dieser Doku) — laufende Verfeinerungen, weiterhin volle Kompatibilität mit Vim-7-Konfigurationen, XDG-konforme Pfade als Option.

Was diese Liste nicht zeigt: Das eigentliche Tempo der Vim-Welt steckt nicht nur in der Kern-Version, sondern auch im Plugin-Ökosystem — Plugins wie vim-fugitive, vim-surround, coc.nvim oder vim-airline entwickeln sich auf eigener Spur.

vim example.vim
" Ein minimales Vimscript-Beispiel: zwei Optionen setzen
" und eine einfache Mapping definieren.
set number relativenumber
set ignorecase smartcase

" <leader>w speichert den aktuellen Buffer (nur Normal-Mode).
" Mappings, Leader-Key und die Modi-Präfixe sind Thema
" späterer Kapitel.
nnoremap <leader>w :write<CR>

Abgrenzung: Vim vs. Emacs, VS Code und Helix

Ein fairer Vergleich braucht zwei Achsen: Bedien-Modell auf der einen, Out-of-the-box-Komfort auf der anderen Seite.

EditorSprache der ErweiterungBedien-ModellStärke
Vim 9Vimscript, Vim9scriptmodalüberall installiert, vi-kompatibel, läuft in jedem Terminal
EmacsEmacs Lispnicht-modaljedes Verhalten zur Laufzeit veränderbar, Plattform-Charakter
VS CodeJavaScript/TypeScriptnicht-modalenormer Erweiterungs-Marktplatz, hervorragende Defaults
HelixTOML + Rust-Coremodal (selection-first)„post-Vim", multi-cursor by default, kein Plugin-System

Drei praktische Konsequenzen:

  • Wer schnell produktiv sein will, ist mit VS Code besser bedient. Vim belohnt Investition, nicht Geschwindigkeit — die ersten Wochen sind unbestreitbar langsamer als vorher.
  • Wer nicht-modal editieren möchte, aber Vim-Komfort braucht, kann VS Code oder Emacs mit Vim-Bindings (in Emacs als evil-mode) nutzen. Das funktioniert für viele Workflows überraschend gut, ohne das vollständige Vim-Ökosystem.
  • Wer einen Editor sucht, der auf jedem Server und in jedem Container schon installiert ist, kommt um vi/Vim nicht herum — er ist Pflicht-Skill für Sysadmins und Backend-Entwickler.

Der direkte Vergleich mit Neovim, dem 2014 entstandenen Vim-Fork, läuft in einem eigenen Artikel: Vim vs. Neovim. Vorab in einem Satz: Vim 9 und Neovim teilen sich Tastenbedienung und Grundkonzepte vollständig, weichen aber in Konfigurations-Sprache (Vimscript/Vim9script vs. Lua), Plugin-API und eingebauten Werkzeugen (LSP, Tree-sitter) deutlich voneinander ab.

Vanilla-Vim vs. Distributionen

„Vim" meint in dieser Doku immer Vanilla-Vim — den Editor, wie er aus dem offiziellen Tarball oder dem Paketmanager kommt, ohne vorkonfiguriertes Setup. Daneben existieren ein paar Distributionen und Starter-Kits, die Plugins, Tastenkombinationen und Themes mitliefern:

  • SpaceVim — Layer-System nach dem Vorbild von Spacemacs; deckt sowohl Vim als auch Neovim ab; in 2026 mit langsamerem Release-Zyklus, aber stabilem Unterbau.
  • janus-vim — älterer, opinionated Starter mit Schwerpunkt auf produktivem Out-of-the-box-Setup.
  • Bram Moolenaars eigenes vimrc-Sample (vimrc_example.vim in jeder Vim-Installation) — der inoffizielle „Defaults-Vorschlag" des Vim-Projekts selbst; eine gute Lese-Vorlage für eigene Konfigurationen.

Diese Doku startet bewusst mit Vanilla, weil dort jede Taste, jedes Mapping und jeder Plugin-Call nachvollziehbar bleibt. Wer Vanilla versteht, kann jede Distribution lesen und gezielt anpassen — umgekehrt ist das oft nicht der Fall. SpaceVim und Co. tauchen in dieser Doku im späteren Kapitel Erweiterte Features als Wahl-Option auf, nicht als Default-Empfehlung.

Wer eine deutlich umfangreichere Distributions-Welt sucht, findet sie auf der Neovim-Seite (kickstart.nvim, LazyVim, NvChad, AstroNvim) — siehe Distributionen unter Neovim.

Wofür Vim heute genutzt wird

Vim ist als reiner Texteditor groß geworden und hat sich, ohne sein Bedien-Modell zu verraten, zu einem vielseitigen Werkzeug entwickelt. Eine grobe Karte der Einsatzfelder:

  • Server- und Container-Arbeit — vi/Vim ist auf praktisch jeder Unix-Installation vorhanden. Wer SSH, Docker oder Kubernetes ernsthaft administriert, kommt an ein Mindest-Vim nicht vorbei. Für viele Sysadmins ist Vim deshalb der Editor, in dem sie täglich die meiste Zeit verbringen.
  • Schnelles Text-Refactoring:global, :substitute, Macros und Quickfix-Listen machen Vim zu einem konkurrenzlosen Werkzeug für Massenbearbeitungen über viele Dateien hinweg. Mehr im Kapitel Suche & Ersetzen.
  • Programmierung — mit Plugins wie coc.nvim für LSP, vim-fugitive für Git und vim-ultisnips für Snippets ist Vim eine vollwertige IDE-Alternative. Insbesondere coc.nvim läuft Cross-Editor: dieselbe Konfiguration funktioniert in Vim und Neovim.
  • Notizen & Markdown — Plugins wie vim-markdown und vim-pencil machen Vim zu einer ernsthaften Schreibumgebung; mit goyo.vim und limelight.vim lässt sich ein Distraction-free-Modus aktivieren.
  • Tooling-Backend — Vims Konzepte tauchen in vielen IDE-Plugins wieder auf: IdeaVim, vscode-neovim, Sublime-Vintage, even-better-vim. Wer Vim einmal kann, kann es überall.

Diese Vielfalt erklärt, warum viele Vim-Nutzer den Editor jahrzehntelang treu bleiben — und warum eine gute Anleitung breit ansetzen muss, nicht nur „Tasten lernen".

Interessantes

„Vim" meint hier immer Vim 9, nicht Neovim

In dieser Doku steht Vim für das ursprüngliche, von Bram Moolenaar gegründete Projekt — heute unter neuer Leitung als Vim 9.1. Wo der Vergleich zum 2014er Fork Neovim relevant wird, gibt es einen eigenen Artikel Vim vs. Neovim und eine eigenständige Doku-Section unter /docs/neovim/. Diese hier bleibt reines Vim.

Vimtutor ist nicht optional

Vim bringt ein eigenes 30-Minuten-Tutorial mit, das im Terminal mit vimtutor startet. Wer es einmal komplett durchspielt, hat die wichtigsten Motions und Operators in den Fingern, nicht nur im Kopf — und keine Doku der Welt ersetzt diese halbe Stunde Übung. Details im Artikel Erster Start und vimtutor.

„Wie verlasse ich Vim?" ist die meistgestellte Frage

Auf StackOverflow steht die Frage seit Jahren in den Top-3 — über zwei Millionen Aufrufe. Die Antwort: Esc in den Normal-Mode wechseln, dann :q für „quit", :q! für „quit ohne Speichern" oder :wq für „speichern und quit". Wer das einmal kennt, lacht über das Meme — und versteht trotzdem, warum es ohne Modus-Verständnis nicht naheliegt.

Vim9script ist die neue, getypte Konfigurations-Sprache

Seit Vim 9.0 (2022) gibt es Vim9script als getypte, deutlich schnellere Skript-Sprache neben dem klassischen Vimscript. Plugins können wählen — klassisches Vimscript ist mit jeder Vim-Version kompatibel, Vim9script läuft nur ab Vim 9.0 und ist signifikant schneller. Vim9script wird im Kapitel Konfiguration ausführlich behandelt.

Es gibt keinen „falschen" Weg, Vim zu lernen

Manche starten mit vimtutor, andere mit einer existierenden .vimrc aus einem Repo, wieder andere lernen Vim, weil sie es auf einem Server brauchen. Diese Doku folgt der Reihenfolge Modi → Motions → Operators → Plugins → Konfiguration, weil sich das in der Praxis als robust erwiesen hat — aber das ist eine Wahl, kein Gesetz.

Weiterführende Ressourcen

Externe Quellen

Verwandte Artikel

/ Weiter

Zurück zu Grundlagen

Zur Übersicht