Vi
Version vom 1. September 2016, 12:48 Uhr von Hamatoma (Diskussion | Beiträge) (→Beispiele für Ersetzen)
Betriebsmodus[Bearbeiten]
- "visual mode": Buchstaben bedeuten Kommandos
- "Input mode": getippte Buchstaben gelangen ins Dokumnent (wie bei "normale" Editoren). Beendent mit ESC. Wird in der Statuszeile angezeigt
- gestartet mit i (insert, fügt an Cursorposition ein), oder "a" (add, fügt hinter Cursorposition ein) oder 'A' (add, fügt in neue Zeile unter der Cursorposition)
- Beenden mit ESC
- command mode: Eingabe von Kommandos mit Parametern.
- Gestartet mit ':' (aus dem "Visual mode)
- Beenden mit ESC
Kommandos des "Visual Modes"[Bearbeiten]
- c<range>: löscht den Bereich <range> und geht in den "Input mode"
- d<range>: löscht <range>
- f<char>: findet nächstes Zeichen <char> in der aktuellen Cursorzeile
- G: Gehe in letzte Zeile
- 107G Gehe in Zeile 107
- /<rexpr>: Suche <rexpr> (regulären Ausdruck)
- ?<expr>: Suche rückwärts
- x<char>: ersetzt das Zeichen an der Cursorposition durch <char>
<range>:
- w: bis Wortende $: bis Zeilenende
- /<rexpr<>: Bereich von Cursorposition bis zum Zeichen vor dem Auftreten des Suchstrings
Jedem Kommando kann eine Zahl vorangestellt werden, dann wird der Befehl entsprechend oft aufgerufen:
Beispiele:
- "3f-": finde das 3.te '-' ab Cursorposition
- "5dw": lösche 5 Wörter
- "d/Jonny": löscht von Cursor bis zum Zeichen vor "Jonny", auch über mehrere Zeilen
Kopieren von Text[Bearbeiten]
Mit dem Kommando "y<range> kann Text in den Kopierpuffer gebracht werden, das Kommando 'p' fügt den Kopierpuffer
Beispiele:
- "5yy" kopiert 5 Zeilen (ab der Cursorposition) in den Kopierpuffer
- "3yw" kopiert 3 Wörter in den Kopierpuffer
- "y/^}" kopiert den Text von der Cursurposition bis (ausschließlich) der ersten Zeile, die mit '}' beginnt, in den Kopierpuffer
Kommandos im Kommandomodus[Bearbeiten]
- q: beendet den Vi ohne Speichern nur, wenn nichts geändert wurde
- q!: beendet den Vi ohne Speichern, auch wenn Änderungen vorliegen
- s<range>/<search>/replacement/
- 'w': schreibt den Editor-Inhalt in die Datei
- 'wq': schreibt den Editor-Inhalt in die Datei und beendet den Vi
Beispiele für Ersetzen[Bearbeiten]
- .,.+10s/abc/Abc/
- Ersetzt von der aktuellen Cursorposition (".") bis 10 Zeilen später (".+10") die Zeichenfolge "abc" durch "Abc", einmal je Trefferzeile
- 24,$s/bspw./beispielsweise/g
- Ersetze von Zeile 24 bis Dateiende ('$') "bspw." durch "beispielsweise", beliebig oft je Zeile ("g" für "global")
- /Error/s/xxx/yyy/g
- Suche alle Zeilen mit dem String "Error" und ersetze dort "xxx" durch "yyy", beliebig of ("g")
- 1,.s/^/call /
- Füge von Zeile 1 bis zur Cursorposition am Zeilenanfang ("^") den String "call " ein