vi - Texteditor

„vi has two modes: beep constantly, and break everything.“
„vi hat zwei Betriebsarten: andauernd piepsen und alles kaputtmachen.“

– unbekannter Autor

vim startscreen
vi ist ein 1976 von Bill Joy für eine frühe BSD-Version geschriebener und von POSIX standardisierter Texteditor.


Aufbau

                                        |  Start mit
                                        |  vi <dateiname>
                                        v
+--------------------+              +--------------------+              +-------------------+
|                    |              |                    |              |                   |
|   Kommandozeilen-  |  <---------  |    Befehls-Modus   |  --------->  |   Einfüge-Modus   |
|       Modus        |     „:“      |                    |  „i“, „a“,   |                   |
|                    |              | Verwendung von:    |  „o“ usw.    |                   |
| z. B. „wq“, „q!“   |              | yy, p, dd, J       |              | Normales Editie-  |
| oder komplexe      |              | usw.               |              | ren, Pfeiltasten  |
| Befehle wie        |              |                    |              | Bildscrollen usw. |
| „Suchen und        |   [Enter]    | (Der vi startet    |    [Esc]     |                   |
| Ersetzen“          |  --------->  | in diesem Modus)   |  <---------  |                   |
|                    |              |                    |              |                   |
+--------------------+              +--------------------+              +-------------------+
    |                                   |
    |  Beenden mit                      |  Beenden mit    
    v  „wq“ oder „x“                    v  „ZZ“ 


Befehlsreferenz

Befehle – Befehlsmodus (n ist immer optional und eine Zahl)

Eingabe
a                  → Hinter dem Cursor einfügen
A                  → Am Ende der Zeile einfügen
i                  → Vor dem Cursor einfügen
I                  → Am Zeilenanfang einfügen
o                  → Zeile unter aktueller Zeile einfügen
O                  → Zeile über aktueller Zeile einfügen

verändern & löschen
u                  → Letzte Änderung rückgängig machen
.                  → Letzte Änderung wiederholen
nx                 → Ein oder n Zeichen ab dem Cursor löschen
ndd                → Aktuelle oder n Zeilen löschen
ndw                → Aktuelles oder n Wörter löschen
p                  → Zuletzt gelöschten/kopierten Text hinter dem Cursor einfügen
P                  → Zuletzt gelöschten/kopierten Text vor dem Cursor einfügen
U                  → Aktuelle Zeile restaurieren
nJ                 → Zeile mit nächster oder den nächsten n Zeilen zusammenfügen
~                  → Groß- und Kleinschreibung vertauschen
:r Dateiname       → Einlesen der Datei Dateiname unter die aktuelle Zeile
nX                 → Ein oder n Zeichen links vom Cursor löschen
D                  → Bis zum aktuellen Zeilenende löschen
ndW                → Aktuelles oder n Wörter löschen (Leerzeichen als Trennzeichen)
nd}                → Bis zum nächsten oder nten Absatz löschen
d^                 → Bis zum aktuellen Zeilenanfang rückwärts löschen
d/Muster           → Bis zum nächsten Vorkommen von Muster löschen
dn                 → Bis zum nächsten Vorkommen des letzten Musters löschen
dfx                → Alle Zeichen bis zum nächsten x auf der aktuellen Zeile (einschließlich) löschen
dtx                → Alle Zeichen bis zum nächsten x auf der aktuellen Zeile (ausschließlich) löschen
dL                 → Bis zum Bildschirmende löschen
dG                 → Bis zum Dateiende löschen
ncw                → Aktuelles oder n Wörter ändern
ncW                → Aktuelles oder n Wörter ändern (Leerzeichen als Trennzeichen)
ncc                → Aktuelle oder n Zeilen ändern
nC                 → Text von der aktuellen Cursorposition bis zum aktuellen oder n'ten Zeilenende ändern
ns                 → Ein oder n Zeichen ändern, dann einfügen
R                  → Text ab der Cursorposition ändern

kopieren & verschieben
nyy                → Aktuelle oder n Zeilen in den Buffer kopieren
p                  → Zuletzt gelöschten/kopierten Text hinter dem Cursor einfügen

suchen
nG                 → Springen des Cursors zum Dateiende oder zur n-ten Zeile
0                  → Springen des Cursors zum Anfang der aktuellen Zeile
n$                 → Springen des Cursors zum Ende der aktuellen oder n-ten Zeile
/muster            → Vorwärts gerichtete Suche nach muster
?muster            → Rückwärts gerichtete Suche nach muster
n                  → Gleichgerichtete Suche nach letztem Muster
:%s/Quelle/Ziel/   → ersetzt Quelle im Text einmal durch Ziel
:%s/Quelle/Ziel/g  → ersetzt Quelle im Text überall durch Ziel
:r Dateiname       → Datei Dateiname hinter aktuelle Zeile kopieren

Beenden & speichern
:q                 → vi verlassen
:q!                → Datei trotz Änderungen *ungesichert* verlassen
:w                 → Datei sichern
:w!                → vi beenden, Datei forced speichern
ZZ                 → vi beenden, Datei nur sichern, wenn Änderungen vorgenommen wurden
:wq                → speichern und beenden

:e!                → alle Änderungen seit letztem Sichern wegwerfen
:q!                → vi ohne Sichern verlassen


Kommandozeilen Befehle

vi Verzeichnis Dateiname      → Öffnet oder erstellt eine Datei im Verzeichnis. Soll die Datei im aktuellen Verzeichnis erstellt werden, wird Verzeichnis weggelassen.
vi Dateiname1 Dateiname2      → Öffnet/erstellt zwei Dateien mit den Namen Dateiname1 und Dateiname2 nacheinander (gestaffelt) im aktuellen Verzeichnis.
vi -o Dateiname1 Dateiname2   → Öffnet/erstellt zwei Dateien mit den Namen Dateiname1 und Dateiname2 gleichzeitig (in Fenstern untereinander) im aktuellen Verzeichnis.
vi -O Dateiname1 Dateiname2   → Öffnet/erstellt zwei Dateien mit den Namen Dateiname1 und Dateiname2 gleichzeitig (in Fenstern nebeneinander) im aktuellen Verzeichnis.
vi -R Dateiname               → Öffnet eine Datei im Readonly-Modus (schreibgeschützt)
view Dateiname	              → Synonym für vi -R
vi +Zeilennummer Dateiname    → Öffnet eine Datei an Zeile Zeilennummer.
vi + Dateiname                → Öffnet eine Datei an der letzten Zeile.
vi +/SUCHWORT Dateiname	      → Öffnet eine Datei an der Zeile in der das SUCHWORT das erste mal auftritt.
vi -r Dateiname               → Recovery-Aktion nach Programm- oder Systemabsturz.
vi -h                         → Hilfe zum vi, listet alle zulässigen Kommandozeilenargumente inkl. Beschreibung.

linux/vi.txt · Zuletzt geändert: 2015/07/06 22:32 (Externe Bearbeitung)