:q Beenden :q! Beenden ohne Speichern :x Speichern und Beenden :w Speichern
i Text an der aktuellen Position einfuegen I Text am Zeilenanfang einfuegen a Text an der aktuellen Position anfuegen A Text am Zeilenende einfuegen o Unterhalb des Cursors eine neue Zeile einfuegen O Oberhalb des Cursors eine neue Zeile einfuegen S Zeile loeschen und Text ersetzen R Vorhandene Zeichen mit neuem Text ueberschreiben J Aktuelle und folgende Zeile zusammenfuehren ~ Gross-/Kleinschreibung umsetzen . Letzte Aktion wiederholen u Letzte Aenderung zuruecknehmen U Zeile in ihren urspruenglichen Zustand zurueckversetzen
N Suche in umgekehrter Richtung wiederholen / Suche wiederholen, vorwaerts ? Suche wiederholen, rueckwaerts fx Cursor auf naechstes Vorkommen des Zeichens x in der aktuellen Zeile Fx Cursor auf voriges Vorkommen des Zeichens x in der aktuellen Zeile tx Cursor auf das Zeichen vor dem naechsten Vorkommen des Zeichens x in der aktuellen Zeile ; Letzten Suchbefehl in gleicher Richtung wiederholen , Letzten Suchbefehl in umgekehrter Richtung wiederholen nG Cursor in Zeile n G Cursor an Dateiende `` Cursor an die zuletzt editierte Stelle zurueck '' Cursor auf das erste Zeichen der zuletzt editierten Zeile ^G Aktuelle Zeile anzeigen w Wortweise vorwaerts b Worweise rueckwaerts ) Ende des Absatzes ( Anfang des Absatzes
+n datei Oeffnet datei bei der Zeilennummer n +datei Oeffnet datei bei der letzten Zeile +/muster datei Oeffnet datei beim ersten Auftreten von muster -c befehl datei Fuehrt befehl nach Oeffnen der Datei aus -R Oeffnet Datei im Lesemodus -r Stellt Dateien nach einem Systemabsturz wieder her
1-9 Enthalten die letzten neun geloeschten Texte a-z Benannte Puffer zur freien Verwendung
Wiederherstellen von 1-9: 2p z.B. holt den Inhalt der vorletzten Loeschung wieder zurueck und fuegt ihn hinter dem Cursor wieder ein.
Benannte Puffer beschreiben: Zuerst den Puffernamen angeben, anschliessend die Anzahl der Zeilen/Woerter/Zeichen/etc. und zuguterletzt den Befehl. Z.B.:
a5dd Loesche die aktuelle und die 4 folgenden Zeilen in den Puffer a dyy Kopiere aktuelle Zeile in den Puffer d
Anzeigen und erste Ersetzungssteps:
:1p Erste Zeile der Datei anzeigen (das p kann man auch weglassen) :1,3 Erste drei Zeilen anzeigen :1s/fuzzi/bla/ Ersetze in Zeile 1 fuzzi durch bla
Bewegungscommands:
d oder delete Zeilen loeschen m oder move Zeilen verschieben t, co oder copy Zeilen kopieren
Beispiele:
:3,18d Loesche Zeilen 3 bis 18 :160,224m23 Verschiebe Zeilen 160 bis 224 hinter Zeile 23 :23,29co100 Kopiere 23 bis 29 hinter 100
Praktisches:
:set nu Zeige alle Zeilennummern an :set nonu Verstecke alle Zeilennummern :1,10# Von Zeile 1 bis 10 Zeilennummern anzeigen := Zeige die Gesamtzahl der Zeilen an :.= Zeige die Nummer der aktuellen Zeile an :/muster/= Zeige die Nummer der ersten Zeile, die muster enthaelt :ic Bei Suchmustern Gross-/Kleinschreibung ignorieren :noic Ignoriere obiges :set all Zeige alle Optionen an :ab abk Ausdruck Die Abkuerzung abk fuer Ausdruck verwenden
Unix Befehle ausfuehren
:!befehl Fuege Ausgabe von Befehl ein (z.B. :!date) :r!befehl Gleiches wie oben !)befehl Text mit vi filtern (z.B. !) dann tr '[a-z]' '[A-Z]' bedeutet Abschnitt nach Cursor in Grossbuchstaben verwandeln
$ vi datei1 datei2 Rufe zunaechst datei1 auf, wenn diese beendet wird rufe datei2 auf :args Zeige die Argumentliste auf :e Neue Datei oeffnen :e! Verwirft saemtliche Aenderungen in der aktuellen Datei ^^ D.h. STRG+^: Zwischen Dateien umschalten
Mittels / kann man einen Suchstring eingeben. Achtung: bei Sonderzeichen (/,$, usw.) einen Backslash vor dem Sonderzeichen.
Metazeichen:
. Jedes beliebiges Zeichen * Null oder mehr Vorkommen des davorliegenden Zeichens ^ Zeilenanfang $ Zeilenende \ Naechstes Zeichen ist ein gewoehnliches Zeichen, verliert seine spezifische Bedeutung [ ] Erkennt ein beliebiges der in Klammern angegebenen Zeichen. [AB] z.b. heisst sowohl A als auch B ~ Regulaerer Ausdruck, der bei letzter Suche verwendet wurde
:s/[Suchstring]/[Ersatzstring]/ In der Zeile Ausdruck durch anderen ersetzen :[Startzeile],[Endzeile]s/[Suchstring]/[Ersatzstring]/g Innerhalb eines Bereichs Suchen und Ersetzen :%s/[Suchstring]/[Ersatzstring]/g Innerhalb eines ganzen Dokuments einen Ausdruck durch einen anderen ersetzen :g/[Suchstring]/s/[Suchstring]/[Ersatzstring]/g Diesselbe Aktion wie oben nur komplexer allerdings auch logischer :g/[Suchstring]/s//[Ersatzstring]/g Wie oben
Aktuelle Zeile loeschen: dd
Von Zeile bis Zeile alles loeschen:
:[Startzeile],[Endzeile]d
Jene Zeilen loeschen, die einen bestimmten String enthalten:
:%g/[String]/d
In einem bestimmten Bereich jene Zeilen loeschen, die einen bestimmten String enthalten:
:[Startzeile],[Endzeile]g/[String]/d
Zwischen Muster1 und Muster2 loeschen:
:/muster1/,/muster2/d
$Id: vi.html,v 1.5 2002/06/24 11:03:23 juergen Exp $