Login
Login-Name Passwort


 
Newsletter
Werbung

Fr, 2. März 2001, 00:00

Praxisorientiertes VI-Tutorial

Warum VI?

Der Editor VI ist seit sehr langer Zeit ein Grundbestandteil von UNIX-Systemen. Damit ist er vermutlich eines der ältesten Programme, die noch verbreitet sind. Man mag sich fragen, warum man sich mit diesem Urgestein beschäftigen soll. Die Gründe sind wohl hauptsächlich die folgenden:

  • VI ist auf wohl jedem UNIX-System anzutreffen (und auch auf vielen nicht-UNIX-Systemen).
  • VI ist ein extrem mächtiger Editor, aber dennoch klein und schnell.
  • VI zu benutzen ist cool B-)

Es gibt viele VI-Varianten. Die zweifellos beliebteste ist der Vi IMproved (vim), daher bezieht sich dieser Artikel zum Teil speziell auf diesen (selbstverständlich wurde dieser Artikel auch damit geschrieben).

Eine Datei erstellen

Als Erstes werden wir uns anschauen, wie man in VI eine Datei erstellt und speichert. Starten Sie VI durch Eingabe von vi.

Im VI gibt es drei Modi. Momentan befinden wir uns im Kommandomodus. Um einen Text einzugeben, müssen wir in den Eingabemodus wechseln. Dazu gibt es mehrere Möglichkeiten. Um den Eingabemodus am Ende der aktuellen Zeile zu beginnen (d.h. mit dem Cursor ans Ende springen und dort den Eingabemodus starten), können wir A (großes a; Append = anhängen) drücken. Um ihn an der aktuellen Cursorposition zu beginnen, drücken Sie i (insert = einfügen).

Jetzt können Sie einen beliebigen Text tippen. Zuletzt wollen wir das noch speichern. Verlassen Sie dazu den Eingabemodus über die [Escape]-Taste. Nun sind wir wieder im Kommandomodus.

Für viele Dinge, darunter auch das Öffnen und Speichern von Dateien, müssen wir in den ex-Modus wechseln. Das machen wir durch die Taste :. Nun kann ein ex-Kommando eingegeben werden.

Um den Text in die Datei "test01.txt" zu schreiben, geben Sie w test01.txt ein, gefolgt von [Enter]. Abbrechen können Sie ein im ex-Modus eingegebenes Kommando mit [Escape]. In beiden Fällen befinden Sie sich danach wieder im Kommandomodus.

Verlassen des VI

Um VI zu beenden, brauchen wir wieder ein ex-Kommando. Geben Sie, wenn Sie im Kommandomodus sind, :q ein. Dadurch wird VI unter der Bedingung verlassen, dass die aktuelle Datei gespeichert wurde.

Sollten Sie einmal Ihre Änderungen verwerfen wollen, verlassen Sie VI mit :q!.

Eine Datei öffnen

Sie können VI beim Aufruf von der Shell einen Dateinamen übergeben. Dadurch wird diese Datei geöffnet. Geben Sie dazu beispielsweise vi test01.txt in der Shell ein.

Alternativ können Sie auch im VI mit dem ex-Kommando :e test01.txt eine Datei öffnen.

Wenn Sie eine Datei auf eine dieser Weisen geöffnet haben oder beim Speichern einen Dateinamen angegeben haben, brauchen Sie nun beim nächsten Speichern nicht mehr den Dateinamen eingeben, es genügt das ex-Kommando :w. Um zu speichern und den Editor zu verlassen, genügt :wq.

Mehrere Dateien öffnen

Sie können VI beim Starten auch mehrere Dateinamen übergeben: vi *.cpp *.h. Dabei wird die zuerst genannte Datei direkt geöffnet und kann bearbeitet werden. Wenn Sie mit der Bearbeitung der nächsten beginnen wollen, erreichen Sie dies über den ex-Befehl :next. Zur vorherigen Datei gelangen Sie entsprechend mit :prev.

Bestimmte Stellen wiederfinden

Beim Editieren einer langen Datei, insbesondere eines Quellcodes, ist es sehr praktisch, wenn man Markierungen setzen kann, um später schnell diese Stellen wiederzufinden.

Um eine Markierung zu setzen, drücken Sie im Kommandomodus(!) die Zeichenfolge mx, wobei x ein beliebiger Kleinbuchstabe ist. Um später zu dieser Markierung zu springen, genügt ein im Kommandomodus eingegebenes 'x, wobei x wieder der gleiche Kleinbuchstabe ist. Sie können also 26 Markierungen setzen. Diese Markierungen können auch überall dort verwendet werden, wo Zeilenangaben auftreten.

Kopieren und Einfügen

Sie haben in VI nicht nur die Möglichkeit, 26 Markierungen zu setzen, Sie können auch 26 Puffer zum Kopieren und Einfügen verwenden (was ein großer Vorteil von VI gegenüber anderen Editoren ist).

Drücken Sie v, um den Anfang des Bereiches zu markieren, den Sie kopieren wollen. Bewegen Sie den Cursor zum Ende. Dabei wird der markierte Bereich hervorgehoben. Um den markierten Bereich z.B. in Puffer h zu kopieren, genügt nun ein "hy (Das Anführungszeichen steht für "Puffer", das "y" steht für "yank", also kopieren). Einfügen können Sie den Puffer bei Bedarf mit "hp ("p" für paste, einfügen).

Anstatt einen Puffer über einen Buchstaben anzusprechen, können Sie auch einfach einen Standardpuffer verwenden, dazu lassen Sie jeweils das Anführungszeichen und den Puffernamen weg.

Schnelles Navigieren durch den Text

Im Kommandomodus können Sie mit den Cursortasten durch den Text navigieren. Sie können aber sogar dabei eine Zahl voranstellen. Wenn Sie z.B. 30 eingeben und danach die [Nach-Links]-Taste drücken, bewegt sich der Cursor um 30 Zeichen nach links.

Das Voranstellen von Zahlen als Wiederholungsfaktor funktioniert bei fast allen Befehlen.

Mit b können Sie ein Wort zurück und mit w eines nach vorne. Einen Satz zurück kommen Sie mit ( und einen vor entsprechend mit ). Auch hier geben vorangestellte Zahlen den Wiederholungsfaktor an: 5( bewegt den Cursor 5 Sätze zurück und mit 4w gelangen Sie 4 Wörter nach Vorne.

Löschen von Text

Im Eingabemodus ist es relativ umständlich, Text zu löschen. Wenn Sie eine komplette Zeile entfernen wollen, stehen Sie sogar vor einem sehr schwierigen Problem. Daran merkt man schon, dass der Eingabemodus wirklich nur zum Eingeben von Text gedacht ist und nicht zum Editieren.

Im Kommandomodus steht uns zum Löschen von Text das d-Kommando zur Verfügung. Danach folgt ein Buchstabe, der kennzeichnet, auf was für eine Texteinheit wir uns beziehen (Wort, Satz, Zeile, ...). Der gelöschte Text wird zusätzlich in die Standard-Zwischenablage eingefügt.

Um ein Wort zu löschen, drücken Sie dw. Das Wort hinter dem Cursor löschen Sie entsprechend mit db. Auch hier ist es wieder möglich, eine Zahl voranzustellen. So löschen Sie mit 3dd 3 Zeilen und mit 5dw 5 Wörter.

Bis zum Anfang des aktuellen Satzes löschen Sie mit d(, bis zum Ende mit d).

Bis zum Anfang der aktuellen Zeile kann man mit d^ oder auch mit d0 löschen und bis zum Ende mit d$.

Bei einigen Kommandos kann man auch einen Bereich voranstellen, auf den sie sich beziehen sollen. So entfernen Sie mit 1,5d die ersten fünf Zeilen einer Datei. Statt Zeilennummern können Sie auch Markierungen verwenden: 'a,'bd.

Kommentare (Insgesamt: 3 || Alle anzeigen || Kommentieren )
vielen dank (jakob50000, Di, 28. Mai 2013)
Gute Doku (Napp, Mi, 17. April 2013)
kurzes statement (paul, Di, 10. August 2010)
Pro-Linux
Pro-Linux @Facebook
Neue Nachrichten
Werbung