Linux vi Befehle: Übersicht | Vim Cheat Sheet mit 3 Modi und visuellem Modus

Affiliate-Hinweis v3.1
Affiliate-Hinweis v3.2 (mobil)
TestumgebungRHEL-FamilieAlmaLinux 9.8root-KontoGeprüft am 2026-10-07

vi öffnen und feststellen, dass nichts von dem Getippten erscheint, oder das Fenster schließen, weil man nicht weiß, wie man wieder herauskommt: Das erlebt fast jeder einmal, der zum ersten Mal an einem Server arbeitet. Der Linux-vi-Befehl, also der Editor vi, trennt Normalmodus und Einfügemodus; weißt du, in welchem Modus du gerade bist, erledigst du den Rest mit ein paar Tasten. Dieser Beitrag fasst die drei Modi und die Befehle für jeden Modus in Tabellen zusammen, und auf einem virtuellen Server im Browser kannst du vi selbst ausprobieren.

Unter AlmaLinux 9.8 stammen vi und vim beide aus dem Paket vim 8.2; Bildschirme und Meldungen in diesem Beitrag stammen aus vim. Ist es nicht installiert, installierst du es mit [dnf -y install vim-enhanced].

Diagramm: Wechsel zwischen den drei Modi von vi Linux vi command: three modes diagram

✅ Die drei Modi von vi

In vi macht dieselbe Taste je nach Modus etwas anderes. Eine Datei öffnet sich im Normalmodus; mit i wechselst du in den Einfügemodus und tippst, mit Esc kommst du zurück, und mit einem Doppelpunkt [:] gelangst du in den Kommandozeilenmodus, um zu speichern und zu beenden.

ModusTaste zum WechselnWas es tut
NormalmodusStartmodus von vi · Esc aus jedem anderen ModusCursor bewegen, löschen, kopieren, einfügen, rückgängig machen
Einfügemodusi a I A o OText eingeben. Unten auf dem Bildschirm steht [-- INSERT --]
Kommandozeilenmodus:Speichern, beenden, ersetzen, Zeilennummern einstellen. Unten auf dem Bildschirm erscheint :
Visueller Modusv V Ctrl-vBereich markieren, dann löschen, kopieren oder auf allen Zeilen gleichzeitig einfügen

In der Konsole gibt es drei Wege, eine Datei zu öffnen.

BefehlBeschreibung
vi DateinameÖffnet die Datei im Normalmodus. Gibt es die Datei nicht, wird sie neu angelegt und [New] angezeigt
vi +20 DateinameÖffnet mit dem Cursor in Zeile 20
view Dateiname= vi -RSchreibgeschützt öffnen. Beim Ändern erscheint die Warnung [W10], beim Speichern [E45]

Tippst du auf dem virtuellen Server unten [vi httpd.conf], öffnet sich vi, und das Menü links wechselt zu den Befehlen in vi. Ein Klick auf einen Chip gibt diese Taste auf dem Bildschirm ein; du kannst sie auch mit der Tastatur tippen.

vi-Befehle-Simulatorvim 8.2
[root@server work]#
Läuft nur in deinem Browser und berührt keine echten Dateien. Öffne zuerst mit vi httpd.conf eine Datei, dann wechselt das Menü links zu den Befehlen in vi. Ein Klick auf einen Chip gibt diese Taste auf dem Bildschirm ein, du kannst sie aber auch mit der Tastatur tippen. Nach dem Speichern und Beenden mit :wq prüfst du das Ergebnis mit cat; wenn sich etwas verheddert, drück [Von vorn]. Die übrigen Tasten aus den Tabellen probierst du selbst aus.

✅ Linux vi Befehle im Überblick

🔲 Cursor bewegen

TasteBeschreibung
h j k l← ↓ ↑ →Ein Zeichen weiter. Pfeiltasten gehen auch
0 · ^Zeilenanfang (0) · erstes Zeichen der Zeile, das kein Leerzeichen ist (^)
$Zeilenende
w · b · eAnfang des nächsten Worts · Anfang des vorherigen Worts · Ende des nächsten Worts
gg · GErste Zeile · letzte Zeile der Datei
20Gwie :20Zu Zeile 20. Mit einer anderen Zahl zu jeder beliebigen Zeile
H · M · LOberste · mittlere · unterste Zeile des Bildschirms
Ctrl-f · Ctrl-bEine Bildschirmseite nach unten · oben
Ctrl-d · Ctrl-uEine halbe Bildschirmseite nach unten · oben

🔲 In den Einfügemodus wechseln

Egal mit welcher Taste du hineingehst: Bist du mit dem Tippen fertig, drückst du Esc. cw, cc, C und s löschen und wechseln sofort in den Einfügemodus; ein Wort oder eine Zeile zu korrigieren geht damit schneller, als x und i getrennt zu drücken.

TasteBeschreibung
i · aVor dem Cursor (i) · nach dem Cursor (a) mit der Eingabe beginnen
I · AAm Zeilenanfang (I) · am Zeilenende (A) mit der Eingabe beginnen
o · ODarunter (o) · darüber (O) eine leere Zeile anlegen und mit der Eingabe beginnen
cwVom Cursor bis zum Wortende löschen und mit der Eingabe beginnen
ccGanze Zeile löschen und mit der Eingabe beginnen
CVom Cursor bis zum Zeilenende löschen und mit der Eingabe beginnen
sEin Zeichen löschen und mit der Eingabe beginnen
EscEingabe beenden und zurück in den Normalmodus

🔲 Löschen und bearbeiten

Hängst du an d eine Bewegungstaste an, wird dieser Bereich gelöscht. dw löscht ein Wort, dd eine Zeile, dG alles bis zum Dateiende, und eine Zahl davor wiederholt es entsprechend oft.

TasteBeschreibung
x · XZeichen unter dem Cursor (x) · vor dem Cursor (X) löschen. 3x löscht drei Zeichen
dwVom Cursor bis zum Wortende löschen
ddZeile löschen. 3dd löscht drei Zeilen
D= d$Vom Cursor bis zum Zeilenende löschen
d0Vom Zeilenanfang bis vor den Cursor löschen
dGVon der aktuellen Zeile bis zum Dateiende löschen
:6d · :6,10dZeile 6 löschen · Zeilen 6–10 löschen
JNächste Zeile an das Ende der aktuellen Zeile hängen
rZeichen unter dem Cursor durch das nächste getippte Zeichen ersetzen
~Groß-/Kleinschreibung umschalten
>> · <<Zeile einrücken · ausrücken

🔲 Kopieren, Einfügen und Rückgängig

Gelöschtes lässt sich wie Kopiertes mit p einfügen; drückst du dd und dann p, rutscht eine Zeile nach unten. u geht mehrere Schritte zurück, und Ctrl-r stellt Rückgängiggemachtes wieder her.

TasteBeschreibung
yyZeile kopieren. 3yy kopiert drei Zeilen
ywVom Cursor bis zum Wortende kopieren
p · PKopiertes darunter (p) · darüber (P) einfügen. Bei zeichenweisem Kopieren nach · vor dem Cursor
:1 co 7wie :1 t 7Zeile 1 kopieren und unter Zeile 7 einfügen
:1,7 co 8Zeilen 1–7 kopieren und unter Zeile 8 einfügen
:1 m 8Zeile 1 unter Zeile 8 verschieben
uRückgängig. Mehrfach drücken geht weiter zurück
Ctrl-rRückgängiggemachtes wiederherstellen
.Letzte Änderung wiederholen

🔲 Suchen und Ersetzen

Ersetzen geschieht im Kommandozeilenmodus. Ohne Bereich gilt es nur für die aktuelle Zeile, mit [%] für die ganze Datei, und ohne g am Ende ändert sich in jeder Zeile nur der erste Treffer.

TasteBeschreibung
/ZeichenketteAb dem Cursor nach unten suchen. Am Ende geht es oben weiter [search hit BOTTOM, continuing at TOP]
?ZeichenketteAb dem Cursor nach oben suchen
n · NNächster Treffer in derselben Richtung (n) · in Gegenrichtung (N)
*Wort unter dem Cursor nach unten suchen
:s/old/new/Erstes old in der aktuellen Zeile durch new ersetzen
:s/old/new/gJedes old in der aktuellen Zeile durch new ersetzen
:%s/old/new/gJedes old in der ganzen Datei durch new ersetzen
:10,20s/old/new/gJedes old in den Zeilen 10–20 durch new ersetzen
:%s/old/new/gcVor jeder Ersetzung nachfragen (y ersetzen · n überspringen · a alle · q aufhören)

🔲 Speichern, Beenden und Zeilennummern

TasteBeschreibung
:wSpeichern. Danach steht dort [36L, 1094B written]
:w DateinameUnter anderem Namen speichern. Die Originaldatei bleibt unverändert
:wq= :⁠x = ZZSpeichern und beenden
:qBeenden. Bei ungespeicherten Änderungen erscheint [E37: No write since last change]
:q!Ohne Speichern beenden
:set nu · :set nonuZeilennummern zeigen · ausblenden

✅ Eine Spalte mit dem visuellen Blockmodus von Vim auskommentieren

Willst du vor mehreren Zeilen denselben Text einfügen, nutzt du statt i in jeder Zeile den visuellen Blockmodus. Im Normalmodus markierst du mit v zeichenweise, mit Shift-v zeilenweise und mit Ctrl-v spaltenweise.

Diagramm: die drei visuellen Modi von vim vim visual mode: three kinds diagram

So kommentierst du einen ganzen Block einer Konfigurationsdatei aus: Setz den Cursor auf das erste Zeichen der ersten Zeile, drück Ctrl-v, geh mit j nach unten, um die Zeilen zu markieren, dann drück I, tipp # und drück Esc.

Visuellen Blockmodus in vim starten
1. Drückst du auf dem ersten Zeichen der ersten Zeile Ctrl-v, erscheint [– VISUAL BLOCK –].
Zeilen mit dem Cursor im visuellen Blockmodus von vim markieren
2. Mit j nach unten gehen und alle Zeilen markieren, die einen Kommentar bekommen.
Eingabe im visuellen Blockmodus von vim
3. Drückst du I und tippst #, ist es nur in der ersten Zeile zu sehen.
Spaltenbearbeitung im visuellen Blockmodus von vim abgeschlossen
4. Drückst du Esc, bekommt jede markierte Zeile ein #.

Das Entfernen der Kommentare funktioniert genauso. Markiere auf dem # der ersten Zeile mit Ctrl-v nach unten, drück x, und die markierte Spalte ist auf einmal gelöscht. Im Simulator oben kannst du das an vhost.conf direkt ausprobieren.

  • vi- und vim-Befehle
  • Befehle zur Textverarbeitung
  • Aufbau des vi-Editors: Normalmodus, Einfügemodus und Kommandozeilenmodus

ℹ️ Affiliate-Hinweis
Die Inhalte dieser Website enthalten Affiliate-Links. Kauft ein Besucher über einen dieser Links ein Produkt oder eine Dienstleistung, erhält die Website vom Verkäufer eine Provision. Der Betrag, den der Käufer zahlt(bei Aktionsrabatten sinkt er ↓), steigt dadurch nicht. Angegebene Preise, Rabatte und Lagerbestände entsprechen dem Stand bei Erstellung und können abweichen; prüfe sie daher vor dem Kauf beim Verkäufer. Produkte werden nach eigenen Kriterien ausgewählt und bewertet, und Provisionen beeinflussen weder die Reihenfolge noch den Inhalt der Bewertungen.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Beweisen Sie, dass Sie ein Mensch sind: 10   +   4   =