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:

| Modus | Funktion | Aktivierung | |-------|----------|-------------| | Normal | Navigation, Befehle | Esc | | Insert | Text eingeben | i, a, o | | Command | Speichern, 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):

| Befehl | Aktion | |--------|--------| | :w | Speichern | | :q | Beenden | | :wq | Speichern und beenden | | :q! | Beenden ohne speichern | | :x | Speichern und beenden (wie :wq) | | ZZ | Speichern und beenden (ohne :) |

In den Insert-Modus wechseln

| Taste | Position | |-------|----------| | i | Vor dem Cursor | | a | Nach dem Cursor | | I | Zeilenanfang | | A | Zeilenende | | o | Neue Zeile darunter | | O | Neue Zeile darüber |

Nach der Eingabe: Esc drücken.

Im Normal-Modus:

Grundlegende Bewegung

| Taste | Bewegung | |-------|----------| | h | Links | | j | Runter | | k | Hoch | | l | Rechts | | Pfeiltasten | Funktionieren auch |

Wortweise

| Taste | Bewegung | |-------|----------| | w | Nächstes Wort (Anfang) | | e | Nächstes Wort (Ende) | | b | Vorheriges Wort |

Zeilenweise

| Taste | Bewegung | |-------|----------| | 0 | Zeilenanfang | | ^ | Erstes Zeichen | | $ | Zeilenende |

Seitenweise

| Taste | Bewegung | |-------|----------| | Ctrl+f | Seite vor | | Ctrl+b | Seite zurück | | G | Dateiende | | gg | Dateianfang | | :42 | Zu Zeile 42 |

Text löschen

Im Normal-Modus:

| Befehl | Aktion | |--------|--------| | x | Zeichen unter Cursor | | X | Zeichen vor Cursor | | dd | Ganze Zeile | | dw | Bis Wortende | | d$ oder D | Bis Zeilenende | | d0 | Bis Zeilenanfang | | 5dd | 5 Zeilen |

Kopieren und Einfügen

| Befehl | Aktion | |--------|--------| | yy | Zeile kopieren (yank) | | 5yy | 5 Zeilen kopieren | | yw | Wort kopieren | | p | Nach Cursor einfügen | | P | Vor Cursor einfügen |

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

Rückgängig machen

| Befehl | Aktion | |--------|--------| | u | Rückgängig (Undo) | | Ctrl+r | Wiederherstellen (Redo) |

Suchen und Ersetzen

Suchen

| Befehl | Aktion | |--------|--------| | /suchbegriff | Vorwärts suchen | | ?suchbegriff | Rückwärts suchen | | n | Nächster Treffer | | N | Vorheriger 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

| Taste | Modus | |-------|-------| | v | Zeichenweise | | V | Zeilenweise | | Ctrl+v | Blockweise |

Nach der Auswahl:

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

Mehrere Dateien

Dateien öffnen

vim datei1.txt datei2.txt

Zwischen Dateien wechseln

| Befehl | Aktion | |--------|--------| | :n | Nächste Datei | | :prev | Vorherige Datei | | :e datei | Andere Datei öffnen | | :ls | Offene Dateien anzeigen | | :b2 | Zu Buffer 2 wechseln |

Fenster teilen

| Befehl | Aktion | |--------|--------| | :split | Horizontal teilen | | :vsplit | Vertikal teilen | | Ctrl+w w | Zwischen Fenstern wechseln | | Ctrl+w q | Fenster 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

| Befehl | Aktion | |--------|--------| | >> | Zeile einrücken | | << | Zeile ausrücken | | 5>> | 5 Zeilen einrücken |

Groß-/Kleinschreibung

| Befehl | Aktion | |--------|--------| | ~ | Umschalten | | gUw | Wort großschreiben | | guw | Wort 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.