Im Katalog suchen

Linux - Wegweiser zur Installation & Konfiguration, 3. Auflage

Online-Version

Copyright © 2000 by O'Reilly Verlag GmbH & Co.KG

Bitte denken Sie daran: Sie dürfen zwar die Online-Version ausdrucken, aber diesen Druck nicht fotokopieren oder verkaufen. Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.

Wünschen Sie mehr Informationen zu der gedruckten Version des Buches Linux - Wegweiser zur Installation & Konfiguration oder wollen Sie es bestellen, dann klicken Sie bitte hier.


vorheriges Kapitel Inhaltsverzeichnis Stichwortverzeichnis nächstes Kapitel

Dateien editieren mit vi

In diesem Abschnitt werden wir die Textbearbeitung mit vi (ausgesprochen »wie-ei«) besprechen. vi war der erste vollwertige Editor für Unix-Systeme, der den ganzen Bildschirm nutzte. Er ist einfach, klein und pfiffig. Für Systemverwalter ist es fast ein Muß, den vi kennenzulernen - oft werden Sie in Notfällen keinen großen Editor wie Emacs zur Verfügung haben (zum Beispiel, wenn Sie Linux von einer Rettungsdiskette booten).

vi folgt derselben Philosophie wie viele andere Unix-Anwendungen auch - nämlich, daß jedes Programm eine bestimmte, überschaubare Funktion erfüllen und daß es mit anderen Programmen zusammenarbeiten soll. So verfügt vi zum Beispiel nicht über eine eigene Rechtschreibprüfung oder eine Funktion zum Formatieren von Absätzen, aber diese Aufgaben werden von anderen Programmen erledigt, die sich mühelos aus dem vi heraus aufrufen lassen. Der vi selbst ist also in gewisser Weise eingeschränkt, aber er kann mit anderen Anwendungen so zusammenarbeiten, daß Ihnen praktisch alle gewünschten Funktionen zur Verfügung stehen.

Wahrscheinlich kommt Ihnen vi zunächst ziemlich komplex und unhandlich vor. Trotzdem sind seine einbuchstabigen Befehle sehr schnell und mächtig, sobald Sie sie einmal gelernt haben. Im Anschluß an den vi werden wir Emacs beschreiben, einen wesentlich flexibleren Editor (oder eigentlich schon eine integrierte Arbeitsumgebung), der einfacher zu erlernen ist. Denken Sie aber stets daran, daß Sie vielleicht einmal auf Ihre vi-Kenntnisse angewiesen sind, wenn Emacs nicht zur Verfügung steht. Wir empfehlen deshalb, daß Sie auf jeden Fall einige vi-Grundlagen lernen, auch wenn Ihnen das seltsam erscheint. Es sollte hier auch nicht unerwähnt bleiben, daß es inzwischen eine Reihe von vi-Clones gibt, die sehr viel einfacher als der originale vi zu benutzen sind. Dazu gehören vimvi improved«) und nvi (» new vi«). Es ist nicht unwahrscheinlich, daß Ihre Distribution so eingerichtet ist, daß Sie beim Starten von vi in Wirklichkeit einen von diesen Editoren starten. Wir halten uns hier aber an die grundlegenden Dinge, so daß Sie die hier gegebenen Informationen unabhängig von der verwendeten vi-Version anwenden können. Informationen zu den neueren Versionen finden Sie in Textbearbeitung mit dem vi-Editor von Linda Lamb und Arnold Robbins.

Icon

[15] vi

vi aufrufen

Lassen Sie uns vi starten und eine Datei editieren. Die Syntax ist:

vi Dateiname

Mit

eggplant$ vi test

editieren Sie die Datei test. Der Bildschirm sollte etwa so aussehen:
~ ~ ~ ~ ~ "test" [New file]

Die Spalte mit den ~-Zeichen weist darauf hin, daß Sie sich am Ende der Datei befinden.

Text einfügen und sich im Text bewegen

Während Sie mit vi arbeiten, befinden Sie sich immer in einem von drei Modi. Diese Modi sind der Befehlsmodus (command mode), der Editiermodus (edit mode) und der Ex-Modus (extended mode; erweiterter Modus).

Nach dem Start von vi befinden Sie sich im Befehlsmodus. Dieser Modus dient der Eingabe von (meist einbuchstabigen) Befehlen, mit denen Texte bearbeitet werden (wir kommen gleich darauf zurück). Der Text selbst wird im Editiermodus eingegeben. Drücken Sie i, wenn Sie mit der Eingabe des Textes beginnen möchten (mit i gelangen Sie in den Editiermodus).
Ganz Gallien ist in drei Teile aufgeteilt. ~ ~ ~ ~ ~

Sie können so viele Textzeilen eingeben, wie Sie möchten (mit einem RETURN am Ende jeder Zeile), und mit der BACKSPACE-Taste Tippfehler korrigieren. Drücken Sie die ESCAPE-Taste, wenn Sie aus dem Editiermodus in den Befehlsmodus zurückkehren wollen.

Im Befehlsmodus können Sie entweder die Pfeiltasten oder die Tasten h, j, k und l benutzen, um den Cursor im Text nach links, unten, oben bzw. rechts zu bewegen.

Außer dem Befehl i gibt es mehrere andere Möglichkeiten, Text einzufügen. Der Befehl a (für »append«: anhängen) fügt Text hinter der aktuellen Cursor-Position ein. Ein Beispiel: Benutzen Sie den Pfeil-nach-links, um den Cursor zwischen drei und Teile zu bewegen:
Ganz Gallien ist in drei Teile aufgeteilt. ~ ~ ~ ~ ~

Drücken Sie jetzt i, geben Sie zehn ein, und kehren Sie dann mit der ESCAPE-Taste in den Befehlsmodus zurück:
Ganz Gallien ist in dreizehn Teile aufgeteilt. ~ ~ ~ ~ ~

Wenn Sie unter der aktuellen Zeile eine Leerzeile einfügen und dort Text eingeben möchten, benutzen Sie den Befehl o. Drücken Sie o, und geben Sie eine oder zwei Textzeilen ein:
Ganz Gallien ist in dreizehn Teile aufgeteilt. Diese sind bekannt für Baguette und Wein. ~ ~ ~ ~

Denken Sie daran, daß Sie sich zu jeder Zeit entweder im Befehlsmodus (wo Befehle wie i, a und o wirksam sind) oder im Editiermodus befinden (wo Sie Text eingeben und anschließend mit ESCAPE wieder in den Befehlsmodus wechseln). Falls Sie einmal nicht sicher sind, in welchem Modus Sie sich befinden, drücken Sie einfach die ESCAPE-Taste. Sie verlassen damit den Editiermodus, falls Sie vorher dort waren, und bewirken gar nichts außer einem Piepen, falls Sie bereits im Befehlsmodus sind.

Text löschen und Änderungen rückgängig machen

Im Befehlsmodus löscht der Befehl x das Zeichen unter dem Cursor. Wenn Sie x fünfmal drücken, erhalten Sie folgendes:
Ganz Gallien ist in dreizehn Teile aufgeteilt. Diese sind bekannt für Baguette und ~ ~ ~ ~

Drücken Sie jetzt a, geben Sie neuen Text ein, und schließen Sie mit ESCAPE ab:
Ganz Gallien ist in dreizehn Teile aufgeteilt. Diese sind bekannt für Baguette und anishaltigen Schnaps. ~ ~ ~ ~

Sie können mit dem Befehl dd ganze Zeilen löschen (also d zweimal direkt hintereinander). Wenn Ihr Cursor in der zweiten Zeile steht, erhalten Sie mit dd folgendes:
Ganz Gallien ist in dreizehn Teile aufgeteilt. ~ ~ ~ ~ ~

Gelöschter Text kann mit dem Befehl p wieder eingefügt werden (für »put«; etwa: einfügen). Wenn Sie jetzt p drücken, wird die gelöschte Zeile wieder in den Textpuffer eingefügt, und zwar hinter der aktuellen Zeile. Mit einem P (großes P) wird die gelöschte Zeile statt dessen vor der aktuellen Zeile eingefügt. Per Voreinstellung benutzen p und P zum Einfügen den »undo buffer« (Puffer, um Befehle rückgängig zu machen). Wir werden später noch sehen, daß Sie zum Löschen und Wiedereinfügen auch andere Puffer benutzen können.

Der Befehl u macht die letzte Änderung rückgängig (in diesem Fall bewirkt ein u nach einem dd dasselbe wie ein p). Wenn Sie nach dem Befehl i eine größere Menge Text eingegeben haben, wird der gesamte neue Text wieder gelöscht, wenn Sie gleich nach der Texteingabe in den Befehlsmodus gehen und u drücken.

Mit dem Befehl dw löschen Sie das Wort, das sich unter dem Cursor befindet. Stellen Sie den Cursor auf das Wort anishaltigen, und drücken Sie dw:
Ganz Gallien ist in dreizehn Teile aufgeteilt. Diese sind bekannt für Baguette und Schnaps. ~ ~ ~ ~

Text bearbeiten

Sie können mit dem Befehl R den Text ab der Cursor-Position überschreiben. Stellen Sie den Cursor auf den ersten Buchstaben in Baguette, drücken Sie R, und geben Sie ein:
Ganz Gallien ist in dreizehn Teile aufgeteilt. Diese sind bekannt für Käse und Knoblauch. ~ ~ ~ ~

Der Befehl r ersetzt ein einzelnes Zeichen unter dem Cursor. Dabei landen Sie nicht automatisch im Editiermodus, so daß Sie anschließend auch nicht mit ESC in den Befehlsmodus zurückkehren müssen.

Der Befehl ~ schaltet für das Zeichen unter dem Cursor zwischen Groß- und Kleinschreibung um. Wenn Sie den Cursor auf das a in Ganz stellen und einige Male ~ drücken, erhalten Sie folgendes:
GANZ GALLIEN IST IN DREIZEHN TEILE AUFGETEILT. Diese sind bekannt für Käse und Knoblauch. ~ ~ ~ ~

Ein anderer nützlicher Befehl ist cw, mit dem Sie einfach ein neues Wort eingeben können, und nach dem Drücken von ESCAPE wird alles, was möglicherweise noch vom alten Wort übrig ist, durch das neue ersetzt.

Den Cursor durch den Text bewegen

Sie wissen bereits, wie Sie sich mit den Cursor-Tasten im Text umherbewegen. Außerdem können Sie mit dem Befehl w an den Anfang des nächsten Wortes springen; mit b gelangen Sie zum Anfang des Wortes, auf dem der Cursor steht. Der Befehl 0 (eine Null) bringt den Cursor an den Anfang der aktuellen Zeile, und mit $ bewegen Sie den Cursor an das Zeilenende.

Wenn Sie große Dateien bearbeiten, werden Sie auch bildschirmweise vorwärts oder rückwärts durch den Text blättern wollen. Drücken Sie dazu STRG-F (vorwärts) und STRG-B (rückwärts).

Geben Sie G ein, um den Cursor an das Ende der Datei zu bringen. Sie können auch zu einer beliebigen Zeile springen: Der Befehl 10G würde den Cursor in der zehnten Zeile des Textes plazieren. Benutzen Sie 1G, um an den Anfang der Datei zu springen.

Wenn Sie einen /, gefolgt von einem Suchmuster und RETURN, eingeben, springt der Cursor vorwärts bis zum ersten Auftauchen dieses Musters im Text. Gehen Sie in unserem Beispiel mit dem Cursor in die erste Textzeile, und geben Sie /Käs und RETURN ein; der Cursor springt auf den Anfang von Käse. Mit einem ? statt des / wird die Datei rückwärts durchsucht.

Icon

ed(1)

Das Suchmuster hinter den Befehlen / und ? ist in Wirklichkeit ein regulärer Ausdruck (regular expression). Reguläre Ausdrücke bieten umfangreiche Möglichkeiten, die Muster für das Suchen-und-Ersetzen zu definieren, und viele Unix-Utilities nutzen diese Ausdrücke. (Die Manpage zu ed beschreibt reguläre Ausdrücke im Detail.) Mit Hilfe eines regulären Ausdrucks könnten Sie zum Beispiel nach dem nächsten Großbuchstaben suchen, indem Sie folgendes eingeben:

/[A-Z]

Wenn es also nicht eine bestimmte Zeichenfolge ist, die Sie finden möchten, können Sie mit regulären Ausdrücken genau das definieren, wonach Sie suchen.

Sie können Befehle zur Bewegung des Cursors mit anderen Befehlen, etwa zum Löschen, zusammen aufrufen. Mit d$ zum Beispiel löschen Sie alles ab der Cursor-Position bis zum Ende der Zeile; mit dG wird alles vom Cursor bis zum Ende der Datei gelöscht.

Dateien speichern und vi verlassen

Die meisten der Befehle, die mit der Handhabung von Dateien zu tun haben, werden aus dem Ex-Modus (erweiterter Modus) des vi heraus aufgerufen. Sie gelangen in den erweiterten Modus, indem Sie im Befehlsmodus einen : eingeben. Dabei springt der Cursor in die letzte Bildschirmzeile, wo Sie weitere Befehle eingeben können.

Wenn Sie zum Beispiel die editierte Datei abspeichern möchten, geben Sie :w ein. Der Doppelpunkt bringt Sie in den Ex-Modus, und das w mit anschließendem RETURN schreibt die Datei. Mit :wq speichern Sie die Datei und verlassen zusätzlich vi. (Der Befehl ZZ - im Befehlsmodus, ohne den »:« - hat denselben Effekt wie :wq.)

Wenn Sie vi verlassen möchten, ohne Änderungen zu speichern, geben Sie :q! ein. Mit :q allein können Sie vi nur beenden, wenn alle Änderungen zuvor gespeichert worden sind. Das ! in :q! bedeutet, daß Sie vi beenden möchten und daß es Ihnen damit ernst ist.

Eine andere Datei editieren

Wenn Sie eine andere Datei bearbeiten möchten, geben Sie den Befehl :e ein. Ein Beispiel: Falls Sie nicht mehr die Datei test, sondern statt dessen foo editieren möchten, geben Sie ein:
GANZ GALLIEN IST IN DREIZEHN TEILE AUFGETEILT. Diese sind bekannt für Käse und Knoblauch. ~ ~ ~ ~ :e foo

Falls Sie :e aufrufen, ohne die Datei vorher zu schreiben, erhalten Sie die Fehlermeldung:

No write since last change (:edit! overrides)

An dieser Stelle können Sie entweder mit :w die erste Datei abspeichern und dann :e aufrufen, oder Sie geben statt dessen :e! foo ein, um vi mitzuteilen, daß er die zweite Datei öffnen soll, ohne daß Änderungen an der ersten Datei geschrieben werden.

Andere Dateien einfügen

Mit dem Befehl :r lesen Sie den Inhalt einer anderen Datei in den Textpuffer von vi ein. Der Befehl

:r foo.txt

würde den Inhalt der Datei foo.txt nach der aktuellen Zeile einfügen.

Shell-Befehle aufrufen

Der Befehl :! ermöglicht den Aufruf eines Shell-Befehls, der aus vi heraus ausgeführt wird. Mit dem Befehl

:! ls -F

zum Beispiel rufen Sie den Befehl ls auf und bekommen dessen Ausgabe auf dem Bildschirm angezeigt.

Der Befehl :r! funktioniert ähnlich wie :!, aber die Standardausgabe des Befehls wird in den Textpuffer eingefügt. Mit dem Befehl

:r! ls -F

erhalten Sie:
GANZ GALLIEN IST IN DREIZEHN TEILE AUFGETEILT. Diese sind bekannt für Käse und Knoblauch. briefe/ diverse/ artikel/ ~

Falls Sie allerdings mehrere Shell-Befehle aufrufen möchten, ist es oft einfacher, den Unterbrechungscode (normalerweise STRG-Z) zu benutzen. Voraussetzung dafür ist, daß Sie mit einer Shell wie tcsh oder bash arbeiten, die Jobkontrolle unterstützt.

Globales Suchen und Ersetzen

vi bietet weitaus mehr Möglichkeiten, als wir hier beschreiben können. Viele davon entstehen aus einer Kombination der einfachen Befehle, die wir bereits vorgestellt haben. Wir wollen hier noch einen oder zwei weitere Tricks zeigen, die die meisten Benutzer von vi gebrauchen können.

Mit dem Befehl

:[x,y]s/Muster/Ersetzung/Schalter

sucht vi im Textpuffer zwischen den Zeilen x und y nach allen Vorkommen von Muster, um sie durch den String Ersetzung zu ersetzen. Muster ist ein regulärer Ausdruck; Ersetzung ist eine exakte Zeichenfolge, die aber bestimmte Sonderzeichen enthalten kann, die sich auf Teile von Muster beziehen. Der folgende Befehl ersetzt in den Zeilen 1 bis einschließlich 10 das erste Vorkommen von wischel durch wuschel:

:1,10s/wischel/wuschel/

Statt die Zeilen anzugeben, können Sie auch mit % die ganze Datei spezifizieren. Es gibt weitere Sonderzeichen, die Sie statt x und y benutzen können. Mit $ bezeichnen Sie die letzte Zeile der Datei. Wenn Sie entweder x oder y auslassen, wird dafür die aktuelle Zeile angenommen.

Zu den Flags, die Sie benutzen können, gehören g, mit dem Sie alle Vorkommen von Muster in einer Zeile ersetzen, sowie c, mit dem Sie jede einzelne Ersetzung bestätigen müssen. In den meisten Fällen werden Sie wahrscheinlich das g-Flag benutzen - es sei denn, Sie möchten in jeder Zeile nur das erste vorkommende Muster ersetzen.

Sie haben auch die Möglichkeit, Markierungen (marks) zu setzen. Markierungen sind einbuchstabige Namen, die innerhalb einer Datei an einer bestimmten Cursor-Position vergeben werden. Sie setzen eine solche Markierung, indem Sie den Cursor an die betreffende Stelle bewegen und dann zum Beispiel ma eingeben. (Die Markierungen können mit den Buchstaben a-z oder A-Z benannt werden.) Sie bewegen den Cursor direkt auf die Markierung a, indem Sie `a eingeben (rückwärts geneigtes Anführungszeichen). Mit dem einfachen Anführungszeichen vorwärts (wie in 'a) bewegen Sie den Cursor an den Anfang der Zeile, in der die Markierung a steht.

Mit Hilfe der Markierungen können Sie sich Cursor-Positionen »merken«, um ganze Textbereiche zu bezeichnen. Ein Beispiel: Wenn Sie in einem Textblock suchen und ersetzen wollen, bewegen Sie zunächst den Cursor an den Blockanfang, setzen dort eine Markierung, bewegen dann den Cursor zum Blockende und geben folgenden Befehl ein:

:`a,.s/wischel/wuschel/

Dabei steht `a für die Zeile, die die Markierung a enthält, und . bezeichnet die aktuelle Zeile.

Text verschieben und Register verwenden

Eine Möglichkeit, Text zu kopieren und zu verschieben, haben wir bereits weiter oben beschrieben: Löschen Sie den Text (mit den Befehlen d oder dd), und fügen Sie ihn mit dem Befehl P wieder ein. Nehmen wir an, daß Sie ab der Zeile, in der der Cursor steht, zehn Zeilen löschen möchten, um diesen Textblock an anderer Stelle einzufügen. Geben Sie dazu den Befehl 10dd ein (um zehn Zeilen zu löschen), bewegen Sie den Cursor an die neue Textposition, und geben Sie p ein. Eine andere Möglichkeit ist folgende: Sie geben 10dd und, an derselben Cursor-Position, P ein, um den Text zu löschen und sofort wieder zu restaurieren. Anschließend können Sie diesen Text auch an anderen Stellen einfügen, indem Sie wiederholt den Cursor an die jeweilige Zielposition bewegen und dort p eingeben.

Ähnlich wie dd funktioniert der Befehl yy, mit dem Sie Text kopieren, ohne ihn zu löschen. Auch mit yy kopierte Texte werden mit p wieder eingefügt. Die Befehle zum Löschen und Kopieren können nicht nur auf Zeilen angewendet werden. Erinnern Sie sich daran, daß der Befehl d die Löschungen mittels eines Cursor-Befehls vornimmt; zum Beispiel löscht d$ den Text von der Cursor-Position bis zum Ende der Zeile. In ähnlicher Weise liest y$ den Text vom Cursor bis zum Zeilenende in den Kopierpuffer ein.

Nehmen wir an, daß Sie einen ganzen Textbereich kopieren (oder löschen) möchten. Auch dafür können Sie Markierungen benutzen. Bewegen Sie den Cursor an den Anfang des zu kopierenden Textbereichs, und setzen Sie dort eine Markierung, etwa mit ma. Bewegen Sie dann den Cursor an das Ende des Textes, und geben Sie dort den Befehl y`a ein. Damit lesen Sie den Text von der Cursor-Position bis zur Markierung a in den Kopierpuffer ein. (Erinnern Sie sich daran, daß der Befehl `a den Cursor zur Markierung a bewegt.) Wenn Sie statt y den Befehl d eingeben, wird der Textblock vom Cursor bis zur Markierung gelöscht.

Die einfachste Methode, innerhalb von vi Textblöcke auszuschneiden, zu kopieren und wieder einzufügen, ist die Benutzung von Registern. Ein Register ist einfach ein temporärer, mit einem Namen versehener Speicher für Texte, die Sie hin- und herkopieren, ausschneiden, wieder einfügen möchten usw.

Die Register erhalten einbuchstabige Namen; alle Zeichen von a-z oder A-Z sind möglich. Mit dem Befehl " (doppelte Anführungszeichen) sprechen Sie ein Register an; dahinter steht der Name des Registers, wie in "a, mit dem das Register a bezeichnet wird. Die Groß- und Kleinbuchstaben beziehen sich jeweils auf das gleiche Register, bei Verwendung des Kleinbuchstabens wird der vorherige Registerinhalt überschrieben, bei Verwendung des Großbuchstabens an diesen angehängt.

Wenn wir den Cursor in unserem Beispiel in die erste Zeile bewegen:
GANZ GALLIEN IST IN DREIZEHN TEILE AUFGETEILT. Diese sind bekannt für Käse und Knoblauch. ~ ~ ~ ~

und dann den Befehl "ayy eingeben, wird die aktuelle Zeile in das Register a eingelesen. Wir können den Cursor anschließend in die zweite Zeile bewegen und dort "ap eingeben, um den Text aus dem Register a hinter der aktuellen Zeile einzufügen:
GANZ GALLIEN IST IN DREIZEHN TEILE AUFGETEILT. Diese sind bekannt für Käse und Knoblauch. GANZ GALLIEN IST IN DREIZEHN TEILE AUFGETEILT. ~ ~ ~

Auf ähnliche Weise wird mit dem Befehl "ay`a der Text von der Cursor-Position bis zur Markierung a in das Register a eingelesen. Beachten Sie, daß Markierungs- und Registernamen nicht identisch sind!

Mit Hilfe der Register können Sie Text auch zwischen Dateien hin- und herbewegen. Kopieren Sie den Text einfach in ein Register, öffnen Sie mit :e eine neue Datei zum Editieren, und fügen Sie dort den Text aus dem Register ein.

vi erweitern

vi kann auf vielfache Weise erweitert werden. Die meisten der Befehle, die wir besprochen haben, lassen sich auf beliebige Textbereiche anwenden. Wir haben bereits gezeigt, daß Befehle wie d und y den Text von der Cursor-Position aus mittels eines Befehls zur Cursor-Bewegung wie $ oder G bearbeiten. (dG zum Beispiel löscht den Text vom Cursor bis zum Dateiende.) Viele andere Befehle benutzen zur Bearbeitung von Texten die Cursor-Befehle auf ähnliche Weise. Mit Hilfe der Markierungen können Sie beliebige Ausschnitte aus dem Text bearbeiten.

Wir haben bereits erwähnt, daß vi nur ein Texteditor ist; er verfügt nicht über solche Extras wie eine Rechtschreibprüfung, Hilfen bei der Kompilierung von Programmen und ähnliche Möglichkeiten. Allerdings kann vi andere Programme aufrufen, und mit Hilfe dieser Funktion sind Sie in der Lage, ihn zu erweitern. Der Befehl

:x,y!Befehl

ruft den angegebenen Befehl auf und führt ihn mit dem Text aus den Zeilen x bis y als Standardeingabe aus; diese Zeilen werden durch die Standardausgabe des Befehls ersetzt. Wie beim Befehl s (Suchen und Ersetzen) können Sie auch hier andere Bereiche wie etwa % (die ganze Datei) und $ (die letzte Zeile) statt der Zeilennummern angeben.

Icon

Kapitel 13

Ein Beispiel: Nehmen wir an, daß Sie alle Zeilen eines bestimmten Textbereichs als Zitat kennzeichnen möchten, indem Sie ein Größer-Zeichen (>) vor alle Zeilen schreiben. Eine Möglichkeit besteht darin, ein kleines Shell- oder Perl-Skript zu schreiben, das die Zeilen einliest und mit vorangestelltem > wieder ausgibt (siehe auch Kapitel 13, Programmiersprachen,). (Sie könnten aber auch einen sed-Befehl eingeben; hier gibt es einige Möglichkeiten.) Sie können dann von vi aus Textzeilen durch diesen Filter schicken, der die Zeilen innerhalb von vi durch den zitierten Text ersetzt. Wenn Sie das Skript zum Beispiel quote genannt haben, geben Sie einfach folgenden Befehl ein:

:`a,.!quote

Damit wird der Textblock zwischen der Cursor-Position und der Markierung a als Zitat gekennzeichnet.

Machen Sie sich mit den verschiedenen erweiterten Befehlen (Ex-Befehlen) vertraut. Mit :set können Sie einige Optionen einstellen; mit :set ai zum Beispiel schalten Sie die automatische Einrückung von Text ein. (Mit :set noai schalten Sie diese Option wieder aus.)

Sie haben die Möglichkeit, Ex-Befehle (wie :set) beim Start von vi ausführen zu lassen, indem Sie diese Befehle in die Datei .exrc in Ihrem Home-Verzeichnis schreiben. (Mit der Umgebungsvariable EXINIT läßt sich der Name dieser Datei ändern.) Sie könnten in Ihre .exrc-Datei zum Beispiel

set ai

einfügen, um die automatische Einrückung einzuschalten. In dieser Datei können Sie den : vor Befehlen auch weglassen.

Icon

[19]

Es gibt eine ganze Reihe guter Lehrbücher und Nachschlagewerke zu vi - sowohl online als auch in Form von Büchern. Der Titel Textbearbeitung mit dem vi-Editor von Linda Lamb ist eine Fundgrube für weitere Informationen. Wenn Sie Zugang zum Internet haben, können Sie in den Archiven der Newsgruppe comp.editors eine Reihe von Lern- und Referenzdokumenten zu vi finden; außerdem gibt es dort einige interessante Tips und Tricks zu vi. Der Heimatrechner dieses Archivs ist ftp://alf.uib.no:/pub/vi; er wird sowohl auf cs.uwp.edu als auch auf anderen Rechnern gespiegelt.



vorheriges Kapitel Inhaltsverzeichnis Stichwortverzeichnis nächstes Kapitel


Weitere Informationen zum Linux - Wegweiser zur Installation & Konfiguration

Weitere Online-Bücher & Probekapitel finden Sie in unserem Online Book Center


O'Reilly Home | O'Reilly-Partnerbuchhandlungen | Bestellinformationen | Kontaktieren Sie uns
International | Über O'Reilly | Tochterfirmen

© 2000, O'Reilly Verlag