vim (Vi IMproved) ist auf fast jedem Linux-Server vorinstalliert. Für die Server-Administration ist es wichtig, die Grundlagen zu beherrschen.

Warum vim lernen?

  • Auf jedem Unix/Linux-System verfügbar
  • Funktioniert auch über langsame SSH-Verbindungen
  • Extrem mächtig nach der Einarbeitung
  • Standard für Konfigurationsdateien

vim installieren

vim ist meist vorinstalliert. Falls nicht:

apt install vim    # Debian/Ubuntu
dnf install vim    # CentOS/AlmaLinux

Die drei Modi

vim hat verschiedene Modi:

ModusFunktionAktivierung
NormalNavigation, BefehleEsc
InsertText eingebeni, a, o
CommandSpeichern, Beenden:

Wichtig: Esc bringt Sie immer zurück in den Normal-Modus.

Datei öffnen

vim datei.txt

Existiert die Datei nicht, wird sie beim Speichern erstellt.

Speichern und Beenden

Im Normal-Modus (bei Bedarf erst Esc drücken):

BefehlAktion
:wSpeichern
:qBeenden
:wqSpeichern und beenden
:q!Beenden ohne speichern
:xSpeichern und beenden (wie :wq)
ZZSpeichern und beenden (ohne :)

In den Insert-Modus wechseln

TastePosition
iVor dem Cursor
aNach dem Cursor
IZeilenanfang
AZeilenende
oNeue Zeile darunter
ONeue Zeile darüber

Nach der Eingabe: Esc drücken.

Im Normal-Modus:

Grundlegende Bewegung

TasteBewegung
hLinks
jRunter
kHoch
lRechts
PfeiltastenFunktionieren auch

Wortweise

TasteBewegung
wNächstes Wort (Anfang)
eNächstes Wort (Ende)
bVorheriges Wort

Zeilenweise

TasteBewegung
0Zeilenanfang
^Erstes Zeichen
$Zeilenende

Seitenweise

TasteBewegung
Ctrl+fSeite vor
Ctrl+bSeite zurück
GDateiende
ggDateianfang
:42Zu Zeile 42

Text löschen

Im Normal-Modus:

BefehlAktion
xZeichen unter Cursor
XZeichen vor Cursor
ddGanze Zeile
dwBis Wortende
d$ oder DBis Zeilenende
d0Bis Zeilenanfang
5dd5 Zeilen

Kopieren und Einfügen

BefehlAktion
yyZeile kopieren (yank)
5yy5 Zeilen kopieren
ywWort kopieren
pNach Cursor einfügen
PVor Cursor einfügen

Tipp: dd kopiert die Zeile auch (in den Puffer).

Rückgängig machen

BefehlAktion
uRückgängig (Undo)
Ctrl+rWiederherstellen (Redo)

Suchen und Ersetzen

Suchen

BefehlAktion
/suchbegriffVorwärts suchen
?suchbegriffRückwärts suchen
nNächster Treffer
NVorheriger Treffer

Ersetzen

:s/alt/neu/         # Erstes Vorkommen in Zeile
:s/alt/neu/g        # Alle in Zeile
:%s/alt/neu/g       # Alle in Datei
:%s/alt/neu/gc      # Mit Bestätigung

Beispiele

# localhost durch 192.168.1.1 ersetzen
:%s/localhost/192.168.1.1/g

# Leerzeilen löschen
:g/^$/d

# Kommentare löschen (Zeilen die mit # beginnen)
:g/^#/d

Visuelle Auswahl

TasteModus
vZeichenweise
VZeilenweise
Ctrl+vBlockweise

Nach der Auswahl:

  • d - Löschen
  • y - Kopieren
  • > - Einrücken
  • < - Ausrücken

Mehrere Dateien

Dateien öffnen

vim datei1.txt datei2.txt

Zwischen Dateien wechseln

BefehlAktion
:nNächste Datei
:prevVorherige Datei
:e dateiAndere Datei öffnen
:lsOffene Dateien anzeigen
:b2Zu Buffer 2 wechseln

Fenster teilen

BefehlAktion
:splitHorizontal teilen
:vsplitVertikal teilen
Ctrl+w wZwischen Fenstern wechseln
Ctrl+w qFenster schließen

Praktische Befehle

Zeilen numerieren

:set number       # Zeilennummern an
:set nonumber     # Zeilennummern aus

Syntax-Highlighting

:syntax on
:syntax off

Zeilenumbruch

:set wrap
:set nowrap

Einrückung

BefehlAktion
>>Zeile einrücken
<<Zeile ausrücken
5>>5 Zeilen einrücken

Groß-/Kleinschreibung

BefehlAktion
~Umschalten
gUwWort großschreiben
guwWort kleinschreiben

vim-Konfiguration

Erstellen Sie ~/.vimrc für permanente Einstellungen:

" Zeilennummern
set number

" Syntax-Highlighting
syntax on

" Einrückung
set tabstop=4
set shiftwidth=4
set expandtab
set autoindent

" Suche
set ignorecase
set smartcase
set hlsearch

" Maus aktivieren
set mouse=a

" Encoding
set encoding=utf-8

" Kein Backup
set nobackup
set noswapfile

Häufige Anfänger-Probleme

"Ich stecke fest!"

Esc drücken, dann :q! zum Beenden ohne Speichern.

"Ich bin im falschen Modus"

Esc bringt Sie immer in den Normal-Modus zurück.

"Mein Text wird nicht eingegeben"

Sie sind im Normal-Modus. Drücken Sie i für Insert.

"Ich kann nicht speichern"

Schreibrechte fehlen. Versuchen Sie:

:w !sudo tee %

Vim-Alternativen

Falls vim zu komplex ist:

  • nano: Einfacher, auch auf Servern verfügbar
  • micro: Moderner Editor mit normalen Shortcuts

Spickzettel

Beenden:     :q  :q!  :wq  ZZ
Insert:      i   a   o
Löschen:     x   dd  dw
Kopieren:    yy  yw
Einfügen:    p   P
Undo/Redo:   u   Ctrl+r
Suchen:      /text  n  N
Ersetzen:    :%s/alt/neu/g
Navigation:  gg  G  :42  w  b

Fazit

vim hat eine steile Lernkurve, aber die Grundbefehle sind schnell gelernt. Für Server-Administration reichen die hier gezeigten Befehle. Mit der Zeit werden Sie vim immer mehr schätzen - oder Sie nutzen nano als einfachere Alternative.