Vim

Aus wiki.archlinux.de
Version vom 4. Juli 2007, 00:14 Uhr von 127.0.0.1 (Neu erstellter Artikel Vi(m), Einführung)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)

Der folgende Artikel ist eine kleine Einführung und Befehlsreferenz zu Vi und dessen erweitertem Nachfolger Vim.

Einführung

Der auf allen POSIX-kompatiblen Systemen vorhandene Vi wurde bereits in den siebziger Jahren entwickelt und weist einige Unterschiede zu moderneren Editoren auf. Wer schon einen ersten Kontakt mit Vi hatte weiß, dass es zum Beispiel nicht möglich ist, einfach so drauflos zu tippen; entweder es passiert garnichts, oder nicht das, was man erwartet hätte. Dann, wenn man sich frustriert einem anderen Editor zuwenden möchte, hat man auch schon das nächste Problem: Keine der sonst üblichen Methoden helfen bei dem Versuch, dem Methusalem der Editoren den Rücken zu kehren. Um zumindest den Rückzug zu sichern: Escape drücken und Eingabe von :q! beenden den Vi sofort.

Modi

Der Vi befindet sich immer in genau einem Modus, der die Reaktion des Editors auf Tastatureingaben bestimmt. Nach dem Start befindet man sich im Befehlsmodus, welcher keine Texteingabe, sondern durch Tastaturbefehle gesteuerte Bearbeitung des Textes, wie zum Beispiel das Löschen von Zeilen, ermöglicht.

Um vom Befehlsmodus in den Einfügemodus zu gelangen muss i gedrückt werden. In diesem Modus verhält sich der Vi im Prinzip wie ein moderner Editor: Die Eingabe wird vor dem Cursor eingefügt. Um nun wieder zum Befehlsmodus zurückzukehren, muss die Escape-Taste gedrückt werden.

Neben dem Befehlsmodus steht noch ein Weiterer, der Kommandozeilenmodus, zur Verfügung, welcher im Vergleich zum Befehlsmodus komplexere Befehle ermöglicht und auch für die meisten Dateioperationen genutzt wird. Dieser wird durch Eingabe eines : im Befehlsmodus erreicht und nimmt dann einen Befehl in der untersten Bildschirmzeile entgegen.

Beispiel

Um eine Datei zu editieren und gegebenenfalls zu erstellen ruft man Vi mit dem Dateinamen als Argument in der Shell auf:

$ vi hallo

Nachdem man durch drücken der Taste i in den Eingabemodus gewechselt ist, kann der Text eingegeben werden:

Hallo Welt!
~
~

Die Tilden, welche unterhalb des Textes dargestellt werden dienen übrigens lediglich dazu, die entsprechenden Zeilen von Leerzeilen entscheiden zu können -- Sie sind nicht Bestandteil des Textes.

Jetzt, wo der Text eingegeben ist kann der Einfügemodus durch Drücken von Escape verlassen werden. Der Kommandozeilen-Befehl :wq (w: write, q: quit) speichert die Datei und beendet die Vi-Sitzung.

~
~
:wq

Fertig! Das war die erste erfolgreich mit Vi erstellte Datei!

$ cat hallo
Hallo Welt!

Navigation

Obwohl es in modernen Vi-Abkömmlingen wie dem Vim möglich ist, im Eingabemodus durch Verwendung der Cursortasten zu navigieren ist dies aus verschiedenen Gründen nicht empfehlenswert. Erstens ist diese Möglichkeit nicht bei allen Vi's gegeben (und sie kann auch unter Vim versagen, zum Beispiel beim Remote-Login oder falsch konfiguriertem tty), zweitens widerspricht sie dem Grundkonzept des modalen Editierens. Den Eingabemodus auch ausschließlich als solchen zu Nutzen ist zwar anfänglich ungewohnt, ermöglicht jedoch die Verwendung der elaborierten Navigations- und Editierbefehle des Vi, welche durch eben diese Trennung einfach, schnell und Handgelenkschonend sind.