Wir bringen neovim auf den Mac und legen die Basis für eine moderne Konfiguration.

Was kommt am Ende raus

Eine saubere Grundinstallation von neovim auf macOS und, optional, eine vorgefertigte Plugin-Distribution als Sprungbrett für eine richtige Konfiguration.

Die Lernkurve bei vim und neovim ist erst mal steil, das war sie schon immer. Sobald Du drin bist, willst Du auch nicht mehr raus.

Kleine Geschichte von vi, vim und neovim

Wer schon mit vi oder vim gearbeitet hat, wird neovim mögen.

In den 1960ern gab es im Unix-Umfeld den ed-Editor, zeilenorientiert. Du sahst jeweils nur eine Zeile, nicht den ganzen Text. Später kam ex, eine erweiterte Version von ed, immer noch zeilenorientiert.

Mitte der 1970er hatte Bill Joy genug davon und baute eine visuelle Variante von ex. Wir kennen den Editor als vi. Endlich bildschirmorientiert. Bram Moolenaar entwickelte daraus Ende der 1980er VIM, „vi improved".

Die Struktur des Entwicklerteams ist vergleichbar mit Linux. Bram entscheidet, was rein darf, ähnlich wie Linus bei Linux. Vielen ist das Tempo zu langsam.

Deshalb entstand 2014 neovim. Anfangs eine erweiterte Variante von vim mit Community-Entwicklung. Heute ist neovim deutlich weiter. Lua als native Konfigurationssprache, eingebauter LSP-Client, Tree-sitter und asynchrone Plugins. Wer bei vim bleibt, ist gut bedient. Wer mehr will und sich auf eine moderne Plugin-Landschaft einlässt, landet bei neovim.

Voraussetzungen

Ein aktuelles macOS reicht. Ich installiere alles über Homebrew, das ist auf dem Mac der Quasi-Standard. Wer Homebrew noch nicht hat, sollte das zuerst erledigen.

Installation

Im Terminal:

brew install neovim

Das war es an dieser Stelle. Mit nvim startest Du den Editor.

Erster Start

Beim ersten Aufruf sieht neovim relativ frisch und aufgeräumt aus. Ein paar Standards, die früher in jeder vim-Config gesetzt waren, sind in neovim schon aktiv.

Neovim direkt nach dem ersten Start

So sieht neovim nach dem ersten Start aus.

Wenn Du noch nie mit einem vi-Editor gearbeitet hast: Du beendest mit :q! (quit ohne speichern). Falls Du das nicht eingeben kannst, drücke vorher ESC und tippe es dann.

vi und vim als nvim aliasen

vim ist auf macOS schon dabei, Du hast also beide Editoren auf dem Rechner. Praktisch ist, neovim auch über vi und vim aufzurufen. In der ~/.zshrc:

echo "alias vi='nvim'" >> ~/.zshrc
echo "alias vim='nvim'" >> ~/.zshrc
source ~/.zshrc

Leere Config anlegen

Modernes neovim wird in Lua konfiguriert, nicht mehr in VimScript. Die Config liegt unter ~/.config/nvim/init.lua:

mkdir -p ~/.config/nvim
touch ~/.config/nvim/init.lua

Achtung: Wer gleich mit LazyVim weitermacht (siehe nächster Abschnitt), kann diesen Schritt überspringen. LazyVim bringt seine eigene Struktur mit.

Schneller Einstieg mit LazyVim

Eine init.lua komplett von Hand aufzubauen ist möglich, aber für die meisten ein langer Weg. Wer schnell zu einer richtigen Editor-Umgebung mit LSP, Autocomplete, Tree-sitter, Telescope, Dateibrowser und sinnvollen Tastenkürzeln kommen will, fährt mit LazyVim sehr gut. LazyVim ist eine vorgefertigte Distribution von Folke Lemaitre und basiert auf dem Plugin-Manager lazy.nvim.

Die Installation in Kurzform:

# Empfohlene Tools für LazyVim
brew install ripgrep fd lazygit

# Bestehende neovim-Daten sichern, falls vorhanden
mv ~/.config/nvim{,.bak} 2>/dev/null
mv ~/.local/share/nvim{,.bak} 2>/dev/null
mv ~/.local/state/nvim{,.bak} 2>/dev/null
mv ~/.cache/nvim{,.bak} 2>/dev/null

# Starter-Repo klonen
git clone https://github.com/LazyVim/starter ~/.config/nvim

# Git-Historie des Starters entfernen, damit Du eine eigene anlegen kannst
rm -rf ~/.config/nvim/.git

# Loslegen
nvim

Beim ersten Start zieht sich LazyVim alle Plugins selbst. Gib dem System ein paar Sekunden Zeit. Danach kannst Du mit :LazyExtras zusätzliche Module aktivieren, etwa für bestimmte Sprachen oder Tools. Die LazyVim-Dokumentation erklärt alles weitere.

Ich empfehle den Weg jedem, der nicht von Anfang an alles von Hand bauen will.

Grundbedienung

Die Grundbedienung von vim und neovim habe ich in einem eigenen Beitrag beschrieben. Modes, Bewegen, Suchen, Bearbeiten, alles was Du täglich brauchst.