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/AlmaLinuxDie 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.txtExistiert 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.
Navigation
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ätigungBeispiele
# 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/^#/dVisuelle Auswahl
| Taste | Modus | |-------|-------| | v | Zeichenweise | | V | Zeilenweise | | Ctrl+v | Blockweise |
Nach der Auswahl:
d- Löscheny- Kopieren>- Einrücken<- Ausrücken
Mehrere Dateien
Dateien öffnen
vim datei1.txt datei2.txtZwischen 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 ausSyntax-Highlighting
:syntax on
:syntax offZeilenumbruch
:set wrap
:set nowrapEinrü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 noswapfileHä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 bFazit
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.