vi / vim

Problem

Ich habe bei mir festgestellt, dass ich mit diesem Editor nicht zurecht komme und mir die Kommandos lediglich unzureichend merken kann. Gewöhnungsbedürfig ist für mich, dass ich ständig zwischen Befehlsmodus und Kommandozeilenmodus wechseln muss.

Die Anleitung des System habe ich gesehen. Dir erleichter mir den Einstieg nicht. Darum habe ich hier einige Hinweise zusammengefasst. Verwendet habe ich Debian Buster

Programmstart

In der geöffneten Konsole wird das Programm mit

$ vi

gestartet. Es erscheint eine Meldung, dass 'VIM - VI IMproved' gestartet wurde und eine Kurzübersicht ist zu sehen. Soweit, so gut und schon geht gefühlt nichts mehr.

Programmstart mit Dateiname

Das Programm ist im Befehlsmodus

vi mit dem Namen einer bereits vorhandenen Datei öffnet das Programm und die Datei. Ist die Datei nicht vorhanden, wird sie erstellt.

$ vi test.txt

Der Cursor steht oben in der ersten Zeile an der ersten Stelle.

Navigation in der geöffneten Datei

h - Cursor nach links
l - Cursor nach rechts (kleines L)
j - Cursor nach unten
k - Cursor nach oben

Zeile/n löschen

Um eine einzelne Zeile zu löschen, tippt man in diesem Modus

dd

ein. Return ist nicht erforderlich.

Mehrere Zeilen lassen sich löschen, indem man eine Zahl für die Anzahl der zu löschenden Zeilen eingibt und danach 'dd'. Um also drei Zeilen ab der Cursorposition und nach unten zu löschen, tippt man dies ein:

3dd

Änderung zurücknehmen

Wenn zum Beispiel das Löschen rückgängig gemacht werden soll, tippt man

u

ein.

In Einfügemodus wechseln

i    (bedeutet 'insert')
     oder
a    (bedeutet 'append')
     oder
o    (bedeutet 'other line')

Zum Zeilenende springen

A

In Einfügemodus verlassen

Zurück in Befehlsmodus

ESC

Zeile unter dem Cursor einfügen

o

Zeile über dem Cursor einfügen

O

Zeile kopieren

Cursor an die Stelle setzen, ab der kopiert werden soll, dann mit

v

in den Visualmode wechseln. Cursor bewegen; das klappt an dieser Stelle außer mit den oben angegebenen Tasten auch mit den Cursortasten.
dann

d

für delete drücken. Der Text ist verschwunden und es bleibt eine leere Zeile.

Text hinter dem Cursor einfügen

p

Text vor den Cursor einfügen

P

Text verschieben

Im Visualmode den betreffenden Bereich markieren, dann den Cursor an die passende Stelle setzen und

y

drücken. In meinem Test wurde der Text ebenfalls eingefügt. Die Quelle blieb bestehen. Der kopierte Text wurde lediglich kopiert, nicht verschoben.

Kommandozeilenmodus

Speichern

:w

Wenn vi geöffnet wurde, ohne dabei eine Datei zu laden, kann der Dateiname beim Kommado zum Speichern angegeben werden. Die Endung '.txt' habe ich hier lediglich darum eingegeben, um später besser erkennen zu können, mit welcher Art von Datei ich es zu tun habe.

:w dateiname.txt

Wird an dieser Stelle kein Dateiname eingegeben, erscheint eine entsprechende Fehlermeldung.

Zeilennummern anzeigen lassen

:set number

Zeilennummern ausblenden lassen

:set nonumber

Speichern und beenden

:wq
    oder
:x

Eines dieser Kommandos führt nach 'Enter' zurück in Befehlsmodus

Beenden ohne zu speichern

:q!

Kompatibilitätsmodus abschalten

Das erleichtert die Bedienung.

:set nocp