Das Programm vi/vim

Warum vi?


Eine Frage, die sich viele Linuxneulinge bzw. durchaus auch Fortgeschrittene stellen. Zugegeben, ich dachte auch immer, vi wäre nur etwas für abgehobene Consolen-Freaks, die ein X-System kategorisch ablehenen, weil es ja komfortabel sein könnte. Immerhin war das so ziemlich der erste Editor für Unixe, warum so alten "Schrott" benutzen? Tja, heute gehör ich selber zu den Leuten, die meistens auf der Textkonsole arbeiten.

Und da in Unix/Linux alle Konfigurationsdateien in Textform gehalten sind, sollte man wenigstens einen Editor beherrschen (muss ja nicht gleich Emacs sein), um mal eben eine kleine Konfigurationsänderung vornehmen zu können.
 


Vorteile von vi:

  • Er ist weit verbreitet
  • Er ist Plattformübergreifend
  • Er ist leicht nur mit der Tastatur zu bedienen
  • Er stammt aus Zeiten ohne X und Maus, seine Bedienung ist durchdacht (wenn man sie mal verstanden hat :D)
  • Er unterstützt Syntaxhighlighting für C, C++, Html uvm.

Die Modi in vi/vim

Vim ist unterteilt in 3 Modi: Editmodus, Textmodus und Befehlsmodus

Der Editmodus

In diesem befindet man sich nach dem Start von vi. Hier kann man durch den Text navigieren, und ihn bearbeiten.

Der Textmodus

Hier kann man Text an der jeweiligen Cursorposition eingeben. Um in den Textmodus zu gelangen gibt es mehrere Möglichkeiten:

i Vor dem Cursor einfügen
I Am Anfang der jeweiligen Zeile einfügen
a Nach dem Cursor einfügen
A Am Ende der jeweiligen Zeile einfügen
o Neue Zeile unter Cursorposition
O Neue Zeile über Cursorposition>

Diese Buchstaben muss man eintippen, während man im Editmodus ist. Um aus dem Textmodus wieder in den Editmodus zu gelangen muss man 'Esc' drücken.

Anm.: Ich persönlich benutze eigentlich immer nur 'i', um in den Textmodus zu gelangen.

Befehlsmodus

Hier werden Befehle wie speichern, beenden usw. ausgeführt. Um in den Befehlsmodus zu gelangen, muss man im Editmodus den Doppelpunkt ':' und danach den Befehl tippen. Um ihn zu verlassen, wieder 'Esc' drücken. Hier sind einige Befehle, die man oft braucht:

:q! Vi/Vim verlassen
:w name Datei unter 'name' speichern
:w! name Datei 'name' überschreiben
:wq Geöffnete Datei speichern und vi beenden



Cursornavigation (Editmodus)

h Cursor nach links (bzw. Pfeil links)
l Cursor nach rechts (bzw.Pfeil rechts)
j Cursor ein Zeile hoch (bzw. Pfeil hoch)
k Cursor ein Zeile nach unten (bzw. Pfeil nach unten)
w, W Wort vor   (W: Sonderzeichen nicht beachten)
b, B Wort zurück   (B: Sonderzeichen nicht beachten)



Text suchen (Editmodus)

/hallo Durchsucht den Text nach dem Wort 'hallo' (vorwärts)
?hallo Durchsucht den Text nach dem Wort 'hallo' (rückwärts)
n Weitersuchen nach dem gegebenen Suchbegriff (vorwärts)
N Weitersuchen nach dem gegebenen Suchbegriff (rückwärts)

Anm.: Hier sind auch Platzhalter wie '*' oder '.' möglich. So findet '/hal*' z.B. auch 'hallo', 'halt', 'hall-effekt', 'hallenbad' usw.


Andere Befehle (Editmodus)

x, X Löscht Buchstaben beim Cursor (X löscht nach links)
5x, 5X Löscht 5 Buchstaben beim Cursor (X löscht nach links)
dd Löscht die jeweilige Zeile
5dd Löscht 5 Zeilen
dw, dWLöscht jeweiliges Wort ab Cursor (dW schließt Sonderzeichen ein)
5dw, 5dWLöscht 5 Wörter ab Cursor (5dW schließt Sonderzeichen ein)
db, dBLöscht jeweiliges Wort ab Cursor rückwärts (dB schließt Sonderzeichen ein)
u, U Undo schrittweise (U alle änderungen in der Zeile rückgängig machen)

Anm.: Um einen Befehl mehrmals zu wiederholen, muss man einfach die Anzahl der Wiederholungen davorsetzten.


Kopieren/Einfügen (Editmodus)

yy Zeile kopieren
p, PKopierten oder zuvor gelöschten Text einfügen (P fügt vor der Cursorposition ein)

Ich möchte noch anmerken, dass ich nicht alle Befehle hier erklärt habe, sondern nur die, die ich für wichtig halte, um mit einem Dokument zu arbeiten.

Wer des englischen mächtig ist, kann auch vimtutor starten, ein kleines Tutorial für vim unter Linux. Bereits nach 10 Minuten war ich soweit, dass ich vi/vim effektiv nutzen konnte.

Links: http://www.vim.org

Autor: Baitronic