Notice: Undefined index: string in /var/www/stefan/howtux.de/htdocs/article.php on line 49

Notice: Undefined index: settings in /var/www/stefan/howtux.de/htdocs/article.php on line 61
Home / Pager und Editoren / Der Texteditor vi

Der Texteditor vi

Kategorie: Pager und EditorenErstellt: 02.10.2007 - 23:58 
Autor: Stefan Abu Salah
0

Der Texteditor vi

Einleitung
vi ("vi" für "visual"; ausgesprochen [ vi: ai ]) ist ein 1976 von Bill Joy für eine frühe BSD-Version geschriebener und von POSIX standardisierter Texteditor. Der Name stammt von "Visual Interface", weil sein Vorgänger ex ein einfacher Zeileneditor war. Die originale Version von Bill Joy war ursprünglich weder im Quelltext noch sonst frei verfügbar, so dass sich über die Jahre eine Reihe von Klonen entwickelte, z.B. Vim, Nvi, elvis, WinVi, die auch inzwischen teilweise auf nicht Unix-artigen Systemen laufen.

Der vi kennt drei unterschiedliche Arbeitsmodi. Den Befehlsmodus, den Einfügemodus und den Kommandozeilenmodus.

Befehlsmodus
Nach dem Start befindet man sich immer im Befehlsmodus. In diesem Modus stehen einem einfache Befehle wie beispielsweise "lösche Zeile" oder "ersetze Wort" zur Verfügung.

Einfügemodus
Im Einfügemodus ist die eigentliche Texteingabe möglich.

Kommandozeilenmodus
Hier stehen einem komplexere Möglichkeiten der Bearbeiteitung zur Verfügung, beispielsweise das automatische Suchen und Ersetzen von Text.

Beispiele
(Starten von vi ohne Übergabe):
stefan@troubadix/home/stefan$ vi
// nun startet der vi unter Verwendung einer neuen, leeren Datei

(Starten von vi mit Übergabe):
stefan@troubadix/home/stefan$ vi mein.txt
// nun startet der vi unter Verwendung der Übergebenen Datei, existiert diese Datei noch nicht, so wird sie angelegt

Starten und Beenden
Wie bereits in obigen Beispielen gezeigt, kann man den vi von der Konsole aus starten, indem man "vi" als Befehl absetzt. Gibt man keine Datei an, so verlangt vi nach Beendigung der Arbeit nach einem Dateinamen für das neu erstellte Textfile. Wenn man vi mit einem Dateinamen als Übergabe startet, versucht vi zunächst diese Datei von dem Speichermedium zu öffnen. Existiert diese nicht, so wird diese beim Beenden des vi angelegt, anderenfalls wird die bereits existierende Datei geöffnet.

Befindet man sich im Befehlsmodus, so kann man den vi auf folgende Arten verlassen:

:q Verlassen des vi
:q! Zwangsweises Verlassen des vi unter Verlust aller Änderungen
:wq [DATEINAME] Verlassen des vi und speichern der Datei
:wq! [DATEINAME] Zwangsweises Verlassen des vi und zwangsweises Speichern der Datei (auch wenn nur lese Rechte gesetzt sind)

Der Befehlsmodus
Im Befehlsmodus stehen ein ganze Reihe von Möglichkeiten zur Manipulation des Textes zur Verfügung. Wenn man durch das Benutzen der im folgenden angegebenen Befehle den Befehlsmodus verlässt, ist der Folgemodus angegeben.

Folgende wichtige Befehle stehen einem im Befehlsmodus zur Verfügung:

i Text vor dem Cursor einfügen (insert) -> Einfügemodus
I Text am Anfang der Zeile einfügen -> Einfügemodus
a Text nach dem Cursor einfügen (append) -> Einfügemodus
A Text am Ende der Zeile einfügen -> Einfügemodus
r Überschreiben des Zeichens unterhalb des Cursors, danach wird wieder eingefügt -> Einfügemodus
R Überschreiben des Textes ab der aktuellen Cursorposition -> Einfügemodus
o Text unterhalb der aktuellen Zeile einfügen (open) -> Einfügemodus
O Text oberhalb der aktuellen Zeile einfügen -> Einfügemodus
[ZAHL]x Löschen des Zeichens unterhalb des Cursors, oder bei Angabe von ZAHL löschen der nächsten ZAHL Zeichen
dw Löschen des Wortes unterhalb des Cursors (delete word)
d$ oder D Löschen des Textes von der aktuellen Position des Cursors bis zum Zeilenende
d0 oder d^ Löschen des Textes von der aktuellen Position des Cursors bis zum Zeilenanfang
df[c] Löschen des Textes bis zum ersten Vorkommen des Zeichens "c" in der aktuellen Zeile
[ZEILENANZAHL]dd Löschen der kompletten Zeile in welcher sich der Cursor befindet (bzw. löschen aller folgenden ZEILENANZAHL Zeilen)
p Einfügen der (z.B. per dd gelöschten) Zeilen (paste)
cw Überschreiben der Wortes unterhalb des Cursors (change word) -> Einfügemodus
y Kopieren eines Textbereiches (gleiche Möglichkeiten wie mit "d", nur dass hier der Text nicht gelöscht wird, sondern in der Zwischenablage landet)
/[AUSDRUCK] Suchen nach AUSDRUCK innerhalb der geöffneten Datei (z.B. regulärer Ausdruck). Der nächste Suchtreffer wird nach drücken von "n" (next) aufgesucht
. Wiederholen der letzten Aktion
u Rückgängigmachen der letzten Aktion (undo)

Gelöschte Textbereiche landen in einer Zwischenablage und können mit dem Befehl "p" beliebig oft Eingefügt werden.

Der Einfügemodus
Im Einfügemodus können Sie abhängig von der Art wie Sie ihn betreten haben (i,a,...) den Text bearbeiten. In aktuellen Versionen von vi (oder vim) ist es möglich sich mit den Pfeiltasten der Tastatur zu bewegen.

Folgende wichtige Befehle stehen einem im Einfügemodus zur Verfügung:

ESC Verlassen des Einfügemodus -> Befehlsmodus
PFEIL RAUF Bewegen des Cursors um eine Zeile nach oben
PFEIL RUNTER Bewegen des Cursors um eine Zeile nach unten
PFEIL RECHTS Bewegen des Cursors um ein Zeichen nach rechts
PFEIL LINKS Bewegen des Cursors um ein Zeichen nach links
BILD RAUF Eine Seite nach oben rollen
BILD RUNTER Eine Seite nach unten rollen

Je nach verwendeter Version von vi (oder vim) funktionieren die oben vorgestellten Cursorbewegungen nicht. In diesem Fall sollten Sie sich die jeweilige man-Page anschauen.

Der Kommandozeilenmodus
Der Kommandozeilenmodus bietet ausgefeiltere Möglichkeiten der automatisierten Bearbeitung des geöffneten Textes

Folgende wichtige Befehle stehen einem im Kommandozeilenmodus zur Verfügung:

:%s/[AUSDRUCK]/TEXT/g Suche nach AUSDRUCK und ersetze ihn durch TEXT (vgl. sed)



Notice: Undefined variable: urli in /var/www/stefan/howtux.de/htdocs/classes.php on line 240
Bookmark auf del.icio.usBookmark auf Mister WongBookmark auf BlinklistBookmark auf GoogleBookmark auf LinkarenaBookmark auf YiggBookmark auf FolkdBookmark auf Yahoo
Home / Pager und Editoren / Der Texteditor vi
simplum