3.2. VI: Der Urahne

VI war der erste Texteditor im Vollbild-Modus überhaupt. Auf ihn trifft zu, woran sich auch bei Unix die Geister scheiden: er ist anfänglich ungewohnt zu bedienen, doch dafür ist er ein sehr mächtiges Werkzeug in den Händen dessen, der damit umzugehen weiß. Ein VI-Benutzer kann mit wenigen Tasten Berge versetzen und diese Eigenschaft besitzen nur wenige andere Texteditoren.

Linux-Mandrake vertreibt den VI in einer verbesserten Version, VIm (VI iMproved), doch wir nennen ihn hier weiterhin VI.

3.2.1. Einfügemodus, Kommandomodus, ex Modus...

Zuerst der Aufruf, der genau wie beim Emacs abläuft. Kehren Sie also zu Ihren beiden Dateien zurück und tippen Sie:

$ vi Datei1 Datei2

 

 

Nun sollten Sie sich mit einem Fenster, ähnlich dem in Abbildung 3-4, konfrontiert sehen:

Abbildung 3-4. Startposition in VIm

Sie befinden sich jetzt im Kommandomodus der ersten geöffneten Datei. Und hier fangen die Schwierigkeiten an :-) Im Kommandomodus können Sie keinen Text in eine Datei einfügen... Dazu müssen Sie mittels folgender Kommandos in den Eingabemodus wechseln:

Im Einfügemodus erscheint das Wort ---INSERT--- am unteren Bildschirmrand. Nur in diesem Modus können Sie Text eingeben. Um in den Kommandomodus zurückzukehren, drücken Sie die Esc-Taste.

Im Einfügemodus können Sie die Rücktaste und die Entf-Taste zum Textlöschen benutzen. Zur Navigation können Sie in beiden Modi die Pfeiltasten verwenden, im Kommandomodus zusätzlich noch andere Kombinationen, die wir später betrachten werden.

Den ex Modus erreicht man mittels der : Taste im Kommandomodus: : erscheint am unteren Bildschirmrand zusammen mit dem Cursor. Alles, was Sie jetzt eingeben und mit Eingabe bestätigen, betrachtet VI als ex Kommando. Löschen Sie die Kommandozeile, kehren Sie automatisch in den Kommandomodus zurück und der Cursor erscheint wieder im Text.

Um Änderungen an einer Datei zu sichern, tippen Sie :w im Kommandomodus. Wollen Sie den Inhalt des aktuellen Puffers unter einem anderen Namen sichern, tippen Sie :w <Dateiname>.

3.2.2. Das Arbeiten mit Puffern

Wie im Emacs können Sie verschiedene Puffer gleichzeitig anzeigen lassen. Dazu verwenden Sie das Kommando :split.

Um innerhalb eines Puffers die Datei zu wechseln, tippen Sie :next für die nächste und :previous für die vorige Datei. Sie können auch :e <Dateiname> verwenden, um eine bereits geöffnete Datei zu reaktivieren oder eine neue Datei zu öffnen. Auch hier steht die Komplet­tierungs-Funktion mittels TAB zur Verfügung.

Um in den unteren Puffer zu wechseln, tippen Sie Strg-w j, für den oberen gilt Strg-w k. Sie können die j und k Tasten auch durch die entsprechenden Pfeiltasten ersetzen. :close versteckt einen Puffer, :q schließt ihn.

VI wird Ihnen nicht erlauben, einen Puffer zu schließen oder zu verstecken, ohne Veränderungen vorher gespeichert zu haben. Stattdessen erhalten Sie diese Nachricht:

No write since last change (use! to override)

Falls Sie die gemachten Änderungen verwefen wollen folgen Sie der Anweisung und tippen :q! oder :close! :-)

 

3.2.3. Textedition und Bewegungskommandos

Außer der Rücktaste und der Entf-Taste im Einfügemodus verfügt VI im Kommandomodus über zahlreiche Kommandos um Texte zu löschen, zu kopieren oder zu ersetzen. Schauen Sie sich einige an. Alle Kommandos zerfallen in zwei Teile: die Aktion, die durchgeführt werden soll und ihren Effekt. Die Aktion könnte beispielsweise sein:

Der Effekt wiederum definiert, welche Gruppe von Zeichen von dem Kommando betroffen ist. Diese Effektkommandos entsprechen Bewegungen im Kommandomodus:

Jedem dieser Effektzeichen oder Bewegungskommandos kann eine Zahl hinzugefügt werden, die die Anzahl der Wiederholungen angibt. Für G entspricht diese Zahl der Zeilennummer. So ist eine Vielzahl von Kombinationen möglich:

Zugegebenermaßen sind diese Kommandos nicht gerade intuitiv, da hilft eben – wie so oft – nur üben. Doch Sie sehen, Sie können wirklich ,,Berge mit wenigen Tasten versetzen`` :-)

3.2.4. Ausschneiden, Kopieren, Einfügen

Wie bereits gesehen, dient y zum Kopieren von Text. Ausschneiden funktioniert mittels d. Ihnen stehen 27 Speicherplätze zur Verfügung: ein unbenannter und 26, die jeweils einen der 26 Kleinbuchstaben als Bezeichnung tragen.

Um den unbenannten Speicherplatz zu benutzen, geben Sie das ganz normale Kommando ein: y12w zum Beispiel kopiert die zwölf Worte hinter der aktuellen Cursorposition.[2] Zum Ausschneiden nehmen Sie in diesem Fall d12w

Um einen der 26 benannten Speicherplätze zu benutzen, verwenden Sie die Sequenz "<x> vor dem Kommando, wobei <x> den Namen des Speicherplatzes bezeichnet. Um also jene 12 Wörter in den Speicherplatz k zu packen, geben Sie den Befehl "ky12w (zum Ausschneiden entsprechend "kd12w) ein.

Um Inhalte aus dem unbenannten Speicherplatz einzufügen, benutzen Sie die Kommandos p oder P (für engl. Paste). Diese Kommandos fügen den Inhalt vor bzw. nach dem Cursor ein. Um Inhalte aus einem benannten Speicherplatz einzufügen, verwenden Sie "<x>p oder "<x>P in gleicher Weise (so fügt zum Beispiel "dp den Inhalt des Speicherplatzes d nach dem Cursor ein).

Werfen Sie einen Blick auf das Beispiel in Abbildung 3-5.

Abbildung 3-5. VIm, vor dem Kopieren des Textblocks

 

 

 

 

 

 

Um diese Aktion durchzuführen, werden Sie:

Sie sollten ein Resultat bekommen, wie in Abbildung 3-6 dargestellt.

Abbildung 3-6. VIm, nach dem Kopieren des Textblocks

Nach Text zu suchen ist ziemlich einfach: Gehen Sie in den Kommandomodus, tippen Sie /, gefolgt vom Suchbegriff, ein und bestätigen Sie mit der Eingabe-Taste. /Party beispielsweise sucht nach der Zeichenkette Party von der gegenwärtigen Cursor-Position ausgehend.

 

 

n führt die Suche fort. Erreicht die Suche das Ende der Datei, wird sie an deren Anfang fortgesetzt. Um rückwärts zu suchen, verwenden Sie ? anstelle von /.

3.2.5. VI beenden

Um VI zu verlassen, geben Sie das Kommando :q ein (tatsächlich schließt dieses Kommando lediglich den aktuellen Puffer. Ist dies der einzige Puffer an dem Sie arbeiten, beendet sich VI). Auch hier gibt es verschiedene Möglichkeiten:

Sie werden wohl bereits vermutet haben, dass :wq bei mehreren Puffern den aktuellen Puffer schreibt und schließt.

Fußnoten

[1]

Für dl (ein Zeichen nach rechts löschen) gibt es die Abkürzung x, für dh das Kürzel X. Mit dd löscht man die gesamte aktuelle Zeile.

[2]

...wenn sich der Cursor am Anfang des ersten Wortes befindet!

[3]

y7w heißt wörtlich: "Yank 7 words", also auf deutsch: ,,kopiere sieben Wörter``.


Tux on Star from MandrakeSoft Linux ist ein eingetragenes Warenzeichen von Linus Torvalds. Alle anderen Warenzeichen und Copyrights sind das Eigentum ihrer Inhaber.
Sofern nichts anderes Angaben ist, unterliegen die Inhalte der Seiten sowie alle Bilder dem Copyright von MandrakeSoft S.A. und MandrakeSoft Inc. 2000.
http://www.linux-mandrake.com/