dotfiles/vim-cheat-sheet.md

148 lines
3.9 KiB
Markdown
Raw Normal View History

2021-05-28 10:30:51 +02:00
## Buffer in Splits/Tabs öffnen
2021-05-28 10:01:13 +02:00
* funktioniert mit Buffergator(Leader b) und ctrlp(Strg + F)
<ENTER> öffne im aktueller Ansicht
<C-V> öffne als vertikalen split
<C-T> öffne als neuen tab
2021-05-28 13:27:36 +02:00
<C-X> öffne als horizontalen Split(nur ctrlp)
# NERDtree
`m` Menü
ì horizontaler Split
s vertikaler Split
2021-05-28 10:01:13 +02:00
2021-05-28 10:30:51 +02:00
## Übersicht Buffer
`<Leader> b`
2021-05-28 10:01:13 +02:00
2021-05-28 10:30:51 +02:00
## Buffer auswählen
`<C-t>` neuer Buffer
`<C-l>` nächster Buffer
`<C-h>` letzter Buffer
`<C-q>` schließt Buffer und wechselt vorherigen
2021-05-28 10:01:13 +02:00
2021-05-28 10:30:51 +02:00
## Autovervollständigung von Klammern usw.
`<Strg + P>` Toggle on/off
2021-05-28 10:01:13 +02:00
2021-05-28 10:30:51 +02:00
## NERDtree aufrufen
`<F2>`
2021-05-28 10:01:13 +02:00
2021-05-28 10:30:51 +02:00
## Dateien verschieben
2021-05-28 10:01:13 +02:00
* in NERDtree
2021-05-28 10:30:51 +02:00
`<m>`
`a` hinzufügen
`m` move
`c` copy
`r` remove
`l` ls
2021-05-28 10:01:13 +02:00
2021-05-28 10:30:51 +02:00
## git interactives Staging
`:G stage -p` (`alias stagep`)
2021-05-28 10:01:13 +02:00
2021-05-28 10:30:51 +02:00
## git Befehle
`:G <befehl>`
2021-05-28 10:01:13 +02:00
2021-05-28 10:30:51 +02:00
## git als shell verlassen
`gq`
2021-05-28 10:01:13 +02:00
2021-05-28 10:30:51 +02:00
## alles schließen (und speichern)
`:qa(w)`
2021-05-28 10:01:13 +02:00
2021-05-28 10:30:51 +02:00
## Buffer "maximieren"
`:on`
2021-05-28 10:01:13 +02:00
# Navigation
Strg + hjkl/Pfeiltasten
2021-05-28 13:27:36 +02:00
Strg + W r - Swap bottom/top if split horizontally/Rotates the windows from right to left
Strg + w HJKL - Move current window to X and use the full height of the screen
Strg + W Strg + W Wechselt zum nächsten Buffer
2021-05-28 10:01:13 +02:00
2021-05-28 10:30:51 +02:00
## Buffer tauschen
`Strg + W X`
2021-05-28 10:01:13 +02:00
2021-05-28 10:30:51 +02:00
## neuen leeren Split öffnen
`Strg + W n`
2021-05-28 10:01:13 +02:00
2021-05-28 10:30:51 +02:00
## neuen Buffer öffnen
`:e <name>`
2021-05-28 10:01:13 +02:00
2021-05-28 10:30:51 +02:00
## NERDtree rekursives expandieren von Ordner
`<O>`
2021-05-28 10:01:13 +02:00
2021-05-28 10:30:51 +02:00
## alle Zeilen ab Cursor löschen
`d Shift+G`
2021-05-28 10:01:13 +02:00
## Paste/No Paste
2021-05-28 10:30:51 +02:00
`aktiveren: set paste`
`deaktivieren: set nopaste`
2021-05-28 10:01:13 +02:00
## Insert
A hängt Text am Ende der Zeile an
a setzt den Cursor an das Ende des Wortes
i fügt vor dem Cursor ein
2021-05-28 13:27:36 +02:00
o/O o=Zeile unterhalb einfügen, O Zeile oberhalb einfügen
2021-05-28 10:01:13 +02:00
R ersetzt für jedes getippte Zeichen an vorhandenes
2021-05-28 13:27:36 +02:00
r ersetzt das Zeichen unter dem Cursor
s löscht Zeichen unter Cursor, geht in Insert-Mode
2021-05-28 10:30:51 +02:00
`A` hängt Text am Ende der Zeile an
`a` setzt den Cursor an das Ende des Wortes
`i` fügt vor dem Cursor ein
`o/O` "Buchstabe", o=Zeile unterhalb einfügen, O Zeile oberhalb einfügen
`R` ersetzt für jedes getippte Zeichen an vorhandenes
`r` ersetzt das Zeichen unter dem Cursor
2021-05-28 10:01:13 +02:00
## Zeilen löschen/sortieren
2021-05-28 10:30:51 +02:00
1. `v` gehe in Visual Mode
2021-05-28 10:01:13 +02:00
2. markiere Text
2021-05-28 10:30:51 +02:00
3. `:sort` (Sortiert)
2021-05-28 10:01:13 +02:00
oder
2021-05-28 10:30:51 +02:00
3. `:sort u` (Sortiert und löscht doppelte)
2021-05-28 10:01:13 +02:00
## Löschen
rw/d3w entfernt das Wort vom Cursor an
2021-05-28 13:27:36 +02:00
d$ entfernt Text bis Ende der Zeile
de löscht Text bis Ende des Wortes
2021-05-28 10:01:13 +02:00
dd/2dd löscht die ganze Zeile/2 ganze Zeilen
2021-05-28 13:27:36 +02:00
cc löscht die ganze Zeile, geht in Insert-Mode
D lösche bis zum Ende der Zeile
2021-05-28 10:01:13 +02:00
## Cursor bewegen
3w bewegt den Cursor 3 Wörter vorwärts
2021-05-28 13:27:36 +02:00
<n> Strg +G Springt in <Zeilennummer>
2021-05-28 10:01:13 +02:00
% Wenn Cursor auf Klammer wird zu der zweiten "Hälfte" gesprungen
3e bewegt den Cursor zum Ende des dritten Wortes
2021-05-28 13:27:36 +02:00
G zur letzten Zeile
gg zum Anfang der Datei
w Wort vorwärts
b Wort rückwärts
$ Ende der Zeile
^ Anfang der Zeile
fc Bewege Cursor zum nächsten Auftreten von c, innerhalb der Zeile
## Sonstiges
2021-05-28 10:01:13 +02:00
:help <option> Gibt die Hilfe aus
!<befehl> führt ein externes Kommando aus
2021-05-28 13:27:36 +02:00
u undo/Zurück
Strg +R Redo
g~ Groß zu klein und umgekehrt und Cursor
g~$ wie g~ fur ganze Zeile
2021-05-28 10:01:13 +02:00
## Ersetzen
s/search/replace/g Suchen und ersetzen; wirkt nur in der Zeile in der sich der Cursor befindet
%s/search/replace/g(c) Suchen und ersetzen; wirkt in der ganzen Datei, das c zeigt für jede Ersetzung einen Auswahldialog an
2021-05-28 13:27:36 +02:00
/suchbegriff Suche(von Vorne) mit ? statt / von hinten
Strg +O Springt zur Stelle vor der Suche zurück
2021-05-28 10:01:13 +02:00
n sucht nochmal nach dem Begriff
r<n> Tauscht das Zeichen unter dem Cursor gegen das eingegebene aus
ce <n>/c <zahl> Tauscht die Buchstaben bis zum Ende des Wortes gegen die Eingabe aus
## Kopieren und Einfügen
2021-05-28 10:30:51 +02:00
1. `v` gehe in Visual Mode
2021-05-28 10:01:13 +02:00
2. markiere Text
2021-05-28 10:30:51 +02:00
3. `y` kopieren
2021-05-28 10:01:13 +02:00
4. gehe an Ziel
2021-05-28 10:30:51 +02:00
5. `p` einfügen
2021-05-28 10:01:13 +02:00
## ausschneiden und Einfügen
2021-05-28 10:30:51 +02:00
2. `d` für den Bereich der ausgeschnitten werden soll
2021-05-28 10:01:13 +02:00
4. gehe an Ziel
2021-05-28 10:30:51 +02:00
5. `p` einfügen