vi Kurzreferenz
Ich werde öfters gefragt, wieso ich den vi als Editor brauche. Ganz einfach, der kann viel und man editiert so schnell, wie mit keinem anderen Editor. Deshalb möchte ich den Befehl der Woche dem vi widmen.
Bewegen |
|
h, j, k, l | links, runter, hinauf, rechts |
Pfeiltasten | Hoffentlich selbsterklärend |
w, b |
Springt jeweils ein Wort vorwärts/rückwärts |
E |
Springt ans Ende des aktuellen Wortes |
0, $ |
Springt zum Anfang/Ende der Zeile |
H, M, L |
Springt an den Anfang, in die Mitte oder ans Ende des Fensters |
G |
Springt ans Ende der Datei |
1G |
Springt an den Anfang der Datei |
Suchen | |
/<Wort>[Enter] | Sucht vorwärts nach <Wort> und setzt den Cursor auf den ersten Buchstaben |
?<Wort>[Enter] |
Sucht rückwärts nach <Wort> und setzt den Cursor auf den ersten Buchstaben |
n, N |
Sucht nach <Wort> vorwärts, rückwärts fortsetzen |
Schreiben |
|
i, a |
Fügt den nachfolgenden Text vor/nach dem Buchstaben unter dem Cursor ein |
I, A |
Fügt den nachfolgenden Text am Anfang/Ende der Zeile ein |
o, O |
Fügt eine neue Zeile nach/vor der aktuellen Zeile ein |
r |
Ersetzt das aktuelle Zeichen unter dem Cursor |
Löschen |
|
x |
Löscht das aktuelle Zeichen unter dem Cursor |
dh |
Löscht das Zeichen links des Cursors |
dw |
Löscht das aktuelle Wort |
db |
Löscht das Wort links des aktuellen Wortes auf dem sich der Cursor befindet |
dd |
Löscht aktuelle Zeile |
d0, d$ |
Löscht die Zeile von der aktuellen Corsorposition zum Zeilenanfang/-ende |
dG | Löscht alle folgenden Zeilen, einschliesslich der aktuellen, bis zum Ende der Datei |
J |
Löscht den Zeilenumbruch zwischen der aktuellen und der nächsten Zeile |
d/<Wort> |
Löscht von der aktuellen Cursorposition alles bis zu <Wort> |
Navigieren |
|
:<Zielennummer> |
Geht zur angegebenen Zeile |
Suchen und ersetzen |
|
:s/<suche>/<ersetze>/ | Sucht <suche> auf der aktuellen Zeile und ersetzt den ersten Treffer durch <ersetze> |
:s/<suche>/<ersetze>/g | Sucht <suche> auf der aktuellen Zeile und ersetzt alle durch <ersetze> |
:%s/<suche>/<ersetze>/g | Sucht <suche> in der ganzen Datei und ersetzt es durch <ersetze> |
:%s/<suche>/<ersetze>/gc | Sucht <suche>in der ganzen Datei und fragt nach, ob er es durch <ersetze> ersetzen soll |
Weiteres |
|
u | Macht den letzten ausgeführten Befehl rückgängig |
. <- Punkt | Führt den letzten ausgeführten Befehl nochmals aus |
~ | Ändert Grossbuchstaben in Kleinbuchstaben und umgekehrt |
Kommandomodus | |
[Esc] | Wechselt in den Kommandomodus |
:w / :w <Dateiname> | Speichert Datei / Speichert Datei in <Dateiname> |
:q / :q! | Verlässt den vi / Verlässt vi ohne geänderte Datei zu speichern |
:wq oder :x |
Speichert Datei und verlässt den vi |
:! <Befehl> | Führt <Befehl> in der Shell aus |
:e <Dateiname> | Erstellt neue Datei namens <Dateiname> |
Kopieren und Einfügen | |
yy | Kopiert aktuelle Zeile |
p, P |
Fügt kopierte Zeile nach/vor der aktuellen Zeile ein |
Lösch- und Bewegungsbefehle können auch noch mit Zahlen kombiniert werden, so löscht zum Beispiel ein 3dw gleich 3 Wörter auf einmal oder ein 5h bewegt den Cursor gleich 5 Zeichen nach links.
Leider weiss ich auch nicht alle Befehle auswendig, aber dafür hab ich ja meine vi Referenz Kaffeetasse.