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.