VIM

12. November 2023

Nachfolgend ein paar Befehle für den VIM-Text-Editor.

Datei mit VIM öffnen

vim datei.txt

Wenn VIM bereits geöffnet ist, können noch weitere Dateien geöffnet werden. Dafür gibt es mehrere Möglichkeiten (im Command-Modus).

:e datei.txt          # Datei im aktuellen Window öffnen
:tabnew datei.txt     # Date in neuem Tab öffnen
:sp datei.txt         # Datei in horizontalem Split öffnen
:vsp datei.txt        # Datei in vertikalem Split öffnen

Wenn der Name der Datei nicht bekannt ist, kann auch anstatt des Dateinamens ein Punkt verwendet werden, womit die Dateiauswahl geöffnet wird.

In Datei navigieren

gg = Cursor an den Beginn der Datei
5gg = Cursor in die 5 Zeile der Datei
G = Cursor ans Ende der Datei

h = Cursor nach rechts
j = Cursor nach unten
10j = Cursor 10 Zeilen nach unten
k = Cursor nach oben
10k = Cursor 10 Zeilen nach oben
l = Cursor nach links

w = Cursor zum Anfang des nächsten Wortes
W = Cursor zum Anfang des nächsten Wortes (Sonderzeichen zählen zum Wort)
3w = Cursor auf um drei Wörter weiter

b = Cursor vom aktuellen Wort bzw. zum vorherigen
B = Cursor vom aktuellen Wort bzw. zum vorherigen (Sonderzeichen zählen zum Wort)
3b = Cursor um drei Wörter nach vorne

e = Cursor ans Ende des Wortes
E = Cursor ans Ende des Wortes (Sonderzeichen zählen zum Wort)

Strg+b = Seite nach oben
Strg+f = Seite nach unten
Strg+u = Halbe Seite nach oben
Strg+d = Halbe Seite nach unten

H = Cursor an den oberen Rand
M = Cursor in die Mitte
L = Cursor an den unteren Rand

zz = Scrollen, damit der Cursor in der Mitte des Bildschirmes ist
zt = Scrollen, damit der Cursor am oben ist
zb = Scrollen, damit der Cursor unten ist

Suchen und Ersetzen

/ + Suchtext + Enter = Suchen
n = nächstes Vorkommen
N = vorheriges Vorkommen

:s/alterWert/neuerWert/g = Suchen und ersetzen in der aktuellen Zeile
:s/alterWert/neuerWert/gc = Suchen und ersetzen in der aktuellen Zeile inkl Bestätigung

:%s/alterWert/neuerWert/g = Suchen und ersetzen in der ganzen Datei
:%s/alterWert/neuerWert/gc = Suchen und ersetzen in der ganzen Datei inkl. Bestätigung

:3,.5s/alterWert/neuerWert/g = Suchen und ersetzen zwischen Zeile 3 und den folgenden 5 Zeilen

:3,.5g/suchtext/norm I" = in den Zeilen 3 und den folgenden 5 nach dem Suchtext suchen und pro Ergebniszeile in den Insert-Modus am Anfang der Zeile wechseln und ein Anführungszeichen schreiben

:1,3 norm I" = in den Zeilen eins bis drei am Anfang ein Anführungszeichen einfügen

Kopieren/Ausschneiden/Einfügen

x = aktuelles Zeichen ausschneiden
dd = aktuelle Zeile ausschneiden
yy = Y = aktuelle Zeile kopieren
3yy = aktuelle und die zwei folgenden Zeilen kopieren
yG = aktuelle Zeile und alle folgenden kopieren
ggyG = :%y = gesamte Datei kopieren
yiw = Wort im Cursor kopieren
p = danach einfügen
P = davor einfügen

v = Markiermodus starten
V = Zeile markieren

Strg+r" = einfügen im Insert-Modus

Zeichen/Zeilen Löschen

dd = eine Zeile löschen
3dd = drei Zeilen löschen
dw = aktuelles Wort löschen (Start = Cursor)
3dw = aktuelles (Start = Cursor) und die nächsten zwei Wörter löschen
3db = aktuelles (Start = Cursor) und die vorherigen zwei Wörter löschen
d0 = vom aktuellen Cursor bis zum Start der Zeile löschen
d$ = D = vom aktuellen Cursor bis zum Ende der Zeile löschen
diw = Wort im Cursor löschen

Änderung rückgängig machen

u = letzte Änderung rückgängig machen
3u = letzten drei Änderungen rückgängig machen

Änderungen speichern

:w = Datei speichern
:w datei.txt = Datei mit neuem Namen speichern
:wq = ZZ = Speichern und VIM beenden

VIM beenden

:q = beenden
:q! = ZQ = beenden und aktive Änderungen ignorieren

Editieren & Modus wechseln

i = in Insert-Modus wechseln
I = an den Anfang der Zeile und in den Insert-Modus wechseln
a = Cursor um ein Zeichen nach rechts und in Insert-Modus wechseln
A = Cursor ans Ende der Zeile und in Insert-Modus wechseln
o = neue Zeile darunter einfügen und in Insert-Modus wechseln
O = neue Zeile darüber einfügen und in Insert-Modus wechseln
Esc = Strg+C = in Normal-Modus wechseln

cw = Rest des Wortes (ausgehend vom Cursor) löschen und in den Insert-Modus wechseln
ciw = Wort löschen und in den Insert-Modus wechseln
cib = Inhalt zwischen () löschen und in den Insert-Modus wechseln
ciB = Inhalt zwischen {} löschen und in den Insert-Modus wechseln
cit = Inhalt zwischen HTML-Tags löschen und in den Insert-Modus wechseln
ci" = Inhalt zwischen "" löschen und in den Insert-Modus wechseln
C = Rest der Zeile löschen und in den Insert-Modus wechseln

s = Zeichen unter dem Cursor entfernen und in den Insert-Modus wechseln
S = ganze Zeile löschen und in den Insert-Modus wechseln

r = Zeichen unter dem Cursor durch ein anderes Zeichen ersetzen
R = in den Insert-Modus wechseln und folgende Zeichen überschreiben

x = Zeichen unter dem Cursor entfernen

Diverses

J = nächste Zeile ans Ende der aktuellen Zeile verschieben inkl. einem Leerzeichen dazwischen

Strg+n = Autocomplete, wenn man sich im Insert-Modus befindet

VIM-Plug installieren

curl -fLo ~/.vim/autoload/plug.vim --create-dirs \
    https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim

Anschließend können die Plugins in der .vimrc hinterlegt werden. Diese müssen in den plug-Block eingebettet sein.

call plug#begin()
Plug 'vim-airline/vim-airline'
Plug 'https://tpope.io/vim/surround.git'
Plug 'https://tpope.io/vim/commentary.git'
Plug 'https://github.com/morhetz/gruvbox'
call plug#end()

Dann die .vimrc-Datei neu laden.

:so ~/.vimrc

sowie die Plugins installieren.

:PlugInstall

Alternativ kann mit folgendem Befehl meine .vimrc inkl. Plugins heruntergeladen und installiert werden (git muss installiert sein!):

curl -fL https://raw.githubusercontent.com/stenet/my-vim/master/install.sh | bash -s -- your_clipboard_id