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