Vi

Aus Info-Theke
Zur Navigation springen Zur Suche springen


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