Debian GNU/Linux Anwenderhandbuch | ||
---|---|---|
Zurück | Kapitel 3. Betrieb | Nach vorne |
Der Unix-Standard-Editor vi ist nach der Installation des Basissystems auf jedem Debian GNU/Linux-System verfügbar. vi wird schon seit vielen Jahren auf Unix-Systemen eingesetzt, seine für Anfänger kryptische Bedienung rührt aus der langen Geschichte dieses Editors her. In der Urzeit der Computertechnik standen keine aufwendigen grafischen Arbeitsplätze zur Verfügung. Textdrucker mit Tastatur oder – etwas moderner – Text-Terminals ( VT100, ein Modell der Firma DEC, ist noch heute ein Begriff), die seriell an der Rechner angeschlossen wurden, waren Stand der Technik.
Trotzdem ist es sinnvoll, ein paar wenige Grundlagen über den vi zu erfahren. Dieser Editor ist einfach immer verfügbar, auch auf einem minimalem System. Wenn Sie sich etwas in den vi eingearbeitet haben, werfen Sie mal einen Blick auf vim, vi improved, der eine erweiterte Version des vi ist.
Beim vi wird zwischen einem Kommando- und einem Eingabemodus unterschieden. Durch Drücken der Taste i für „Input“ kommen Sie in den Eingabemodus. Ein Druck auf die Taste Esc beendet den Eingabemodus und man befindet sich wieder im Kommandomodus. Zum Eingabemodus gibt es nicht viel zu sagen, es können damit weitere Zeichen in die Datei eingegeben werden.
Interessanter ist der Kommando-Modus des vi. Mit einzelnen Tasten können Sie im Text navigieren oder auch Zeichen/Zeilen löschen. Laden Sie einfach eine Datei, beispielsweise mit dem Kommando: cp /etc/hosts . (legt eine Kopie der Datei im aktuellen Verzeichnis ab), vi ./hosts (startet vi und lädt die Datei). In dieser Datei befinden sich die lokalen Zuordnungen des Rechnernamens zur IP-Nummer. Nach dem Start des vi befinden Sie sich im Kommandomodus. Sie können nun ein einzelnes Zeichen löschen, indem Sie die Taste x drücken. Ein solcher Befehl kann mit der Taste u rückgängig gemacht werden.
Um den Cursor im Text zu bewegen, können Sie die Pfeiltasten benutzen. Sollte dies aufgrund fehlerhafter Einstellungen (zum Beispiel über eine telnet-Verbindung) einmal nicht funktionieren, können Sie in jedem Fall mit den Tasten h (links), j (runter), k (rauf) und l (rechts) navigieren.
Viele der vi-Kommandos lassen sich auch „vervielfältigen“. Beispielsweise löscht 9x 9 Zeichen ab der aktuellen Position. Dies funktioniert mit den meisten anderen Kommandos ebenso.
Wenn Sie die Änderungen in einer Datei speichern wollen, können Sie dies mit :w tun. Dateien unter einem anderen Namen speichern Sie mit :w neu.txt. Sie können den vi beenden, indem Sie :q eingeben. Auch hier sind Kombinationen möglich, so können Sie eine Datei mit :wq speichern und den Editor verlassen.
Häufig möchte man Zeilen kopieren: hierzu dient der Befehl yy. Dieser speichert die aktuelle Zeile in einem Puffer, die gespeicherten Daten lassen sich mit p wieder an einer anderen Stelle einfügen. Analog dazu lassen sich mit 7yy 7 Zeilen kopieren... und so weiter.
Soweit zu den Grundzügen des Editors vi. Mit diesen wenigen Kommandos sind Sie in der Lage, Anpassungen an den Konfigurationsdateien Ihres Debian GNU/Linux-Systems vorzunehmen.
Wenn Sie sich eine Zeit lang mit diesem Editor beschäftigt haben, können Sie folgende Liste verwenden um ihr vi-Know-How zu vertiefen.
Bereits beim Programstart können einige Optionen angegeben werden, diese sind unter anderem:
vi name - Startet den Editor und lädt die Datei name.
vi name1 name2 name3 - Startet den Editor und lädt die Dateien name1,name2 und name1.
vi -R name - Startet den Editor und lädt die Datei name im Nur-Lese Modus.
vi -r name - Startet den Editor und restauriert die Datei name nach einem Absturz.
Wenn der Editor gestartet ist können einige Einstellungen verändert werden. Sollen diese Änderungen dauerhaft gespeichert werden, so können diese in die Datei ~/.vimrc eingetragen werden.
:set - zeigt die aktuellen Benutzereinstellungen.
:set all - zeigt alle Einstellungen.
:set option - Aktiviert eine Option. Beispiel: set number Aktiviert die Anzeige der Zeilennummern.
:set nooption - Deaktiviert eine Option. Beispiel: set nonumber Deaktiviert die Anzeige der Zeilennummern.
:set option? - Zeigt die möglichen Werte dieser Option.
ZZ - Speichert die Datei und beendet das Programm.
:wq - Speichert die Datei und beendet das Programm.
:w - Speichert die Datei.
:w! - Speichert die Datei auch wenn de Zugriffsrechte auf Nur-Lesen gesetzt sind.
:w name - Speichert die Datei unter dem Namen name.
:q - Beendet das Programm.
:q! - Beendet das Programm, Änderungen werden verworfen.
:e name - Lädt die Datei name.
:e! name - Lädt die Datei name erneut und verwirft alle bisherigen Änderungen.
:e + name - Lädt die Datei name und springt ans Ende der Datei.
:e +n name - Lädt die Datei name und springt in die Zeile n.
:n - Geht zur nächsten der geladenen Dateien.
:args - Listet die aktuelle Liste der Dateien.
:rew - Springt zur ersten Datei in der Dateiliste.
:f - zeigt den Namen der aktuellen Datei und die aktuelle Zeilennummer an.
:q - Beendet das Programm.
:q - Beendet das Programm.
:q - Beendet das Programm.
:q - Beendet das Programm.
Pfeiltasten - Mit den Pfeiltasten kann der Cursor wie in anderen Anwendungen bewegt werden.
CTRL - d - Springt eine halbe Seite nach unten.
CTRL - u - Springt eine halbe Seite nach oben.
CTRL - f - Springt eine Seite nach unten.
CTRL - b - Springt eine Seite nach oben.
:0 - Springt zum Anfang der Datei.
:n - Springt zur Zeile n der Datei.
:$ - Springt zum Ende der Datei.
0 - Springt zum Anfang der Zeile.
^ - Springt zum ersten Zeichen welches kein Leerzeichen ist.
$ - Springt zum Ende der Zeile.
RETURN - Springt zum Anfang der nächsten Zeile.
% - Zeigt die zugehörige Klammer.
G - Springt zu letzten Zeile.
H - Springt zu erste Zeile im aktuellen Fenster.
L - Springt zu letzten Zeile im aktuellen Fenster.
M - Springt in die Mitte des aktuellen Fensters.
- - Springt zum ersten Nicht-Leerzeichen der vorhergehenden Zeile.
+ - Springt zum ersten Nicht-Leerzeichen der nächsten Zeile.
j - Springt zur nächsten Zeile, in der gleichen Spalte.
k - Springt zur vorhergehenden Zeile, in der gleichen Spalte.
h - ein Zeichen nach rechts.
l - ein Zeichen nach links.
w - ein Wort vorwärts.
b - ein Wort rückwärts.
e - zum Ende des Wortes.
) - zum nächsten Satz.
( - zum vorhergehenden Satz.
} - zum nächsten Absatz.
{ - zum vorhergehenden Absatz.
x - Löscht das Zeichen unter dem Cursor.
X - Löscht das Zeichen vor dem Cursor.
D - Löscht alles bis zum Ende der Zeile.
^d - Löscht alles bis zum Anfang der Zeile.
dd - Löscht die gesamte Zeile.
ndd - Löscht n Zeilen.
dnw - Löscht n Wörter ab der Cursorposition.
i - aktiviert den Eingabemodus vor dem Cursor.
I - aktiviert den Eingabemodus vor dem ersten Nicht-Leerzeichen.
a - aktiviert den Eingabemodus nach dem Cursor.
A - aktiviert den Eingabemodus nach dem Ende der Zeile.
o - beginnt eine neue Zeile nach der aktuellen Zeile und aktiviert den Eingabemodus.
O - beginnt eine neue Zeile über der aktuellen Zeile und aktiviert den Eingabemodus.
rn - ersetzt das Zeichen unter dem Cursor durch das Zeichen n, der Eingabemodus wird nicht aktiviert.
R - aktiviert den Eingabemodus, Zeichen werden überschrieben.
C - Ändert den Text bis zum Zeilenende.
D - Löscht den Text bis zum Zeilenende.
s - ersetzt Zeichen.
S - ersetzt Zeilen.
J - ersetzt Zeilen.
y - kopiert die aktuelle Zeile.
nyy - kopiert n Zeilen.
p - fügt die kopierten Zeilen nach der aktuellen Zeile ein.
P - fügt die kopierten Zeilen vor der aktuellen Zeile ein.
Auch gelöschte Zeilen können mit den aufgeführten Kommandos eingefügt werden.
/text - sucht vorwärts nach text.
?text - sucht rückwärts nach text.
n - sucht nochmal in der gleichen Richtung.
N - sucht nochmal in der umgekehrten Richtung.
[ addr ] s/from/to/ [ g ] - ersetzt einmalig from durch to. Mit addr kann ein Bereich angegeben werden in dem die Aktion durchgeführt werden soll. Die Zeilennummern sind durch ein Komma zu trennen. g führt die Aktion an jeder gefundenen Stelle durch. Beispiel: :2,10s/a/b/g ersetzt in den Zeilen von 2 bis 10 alle Buchstaben a durch b.
u - Undo, wiederruft die letzte Änderung.
U - Stellt die aktuelle Zeile wieder her.
~ - Ändert Groß-/Kleinschreibung.
. - Wiederholt das letzte Kommando.
Tip: Unter DOS/Windows erstellte Dateien erscheinen unter GNU/Linux häufig mit doppelten Zeilenendezeichen, da auf diesen Systemen eine Kombination aus CR+LF verwendet wird. CR (Carriage Return) hat den ASCII-Code 13, LF (Line Feed) den ASCII-Code 10.
Um diese Dateien zu konvertieren gibt es verschiedene Lösungsansätze, im vi benutzt man das Kommando :se ff=unix. Sollten noch überflüssige RETURN-Zeichen (^M) am Zeilenende auftauchen, so lassen sich diese mittels :1,$s/^M//g entfernen. Dabei muß man das ^M durch Drücken von STRG-V, gefolgt von STRG-M, eingeben. STRG-V dient dazu, die nachfolgend gedrückte Taste(nkombination) direkt in den Text zu übernehmen.
Zurück | Zum Anfang | Nach vorne |
Links | Nach oben | Dateisysteme |