dotfiles/cheat-sheets/vim.md

154 lines
4.2 KiB
Markdown
Raw Normal View History

2021-05-31 20:01:52 +02:00
## Magit
1. Öffne: <Leader> + m
2. Springe zu Hunk: Strg + N
3. Stagen: S
4. Commit-Message: CC
5. schreiben und speichern: i und :w/CC
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)
2021-05-28 13:36:28 +02:00
`<ENTER>` öffne im aktueller Ansicht
`<C-V>` öffne als vertikalen split
`<C-T>` öffne als neuen tab
`<C-X>` öffne als horizontalen Split(nur ctrlp)
2021-05-28 13:27:36 +02:00
2021-05-31 20:01:52 +02:00
## NERDtree
2021-05-28 13:27:36 +02:00
`m` Menü
2021-05-28 13:36:28 +02:00
`i` 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
2021-05-28 13:36:28 +02:00
`Strg + hjkl/Pfeiltasten`
`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
2021-05-28 13:36:28 +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` 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
`s` löscht Zeichen unter Cursor, geht in Insert-Mode
`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
2021-05-28 13:36:28 +02:00
`rw/d3w` entfernt das Wort vom Cursor an
`d$` entfernt Text bis Ende der Zeile
`de` löscht Text bis Ende des Wortes
`dd/2dd` löscht die ganze Zeile/2 ganze Zeilen
`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
2021-05-28 13:36:28 +02:00
`3w` bewegt den Cursor 3 Wörter vorwärts
`%` Wenn Cursor auf Klammer wird zu der zweiten "Hälfte" gesprungen
`3e` bewegt den Cursor zum Ende des dritten Wortes
`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
2021-05-28 13:27:36 +02:00
## Sonstiges
2021-05-28 13:36:28 +02:00
`:help <option>` Gibt die Hilfe aus
`!<befehl>` führt ein externes Kommando aus
`u` undo/Zurück
`Strg +R` Redo
`g~ ` Groß zu klein und umgekehrt und Cursor
`g~$` wie g~ für ganze Zeile
2021-05-28 10:01:13 +02:00
## Ersetzen
2021-05-28 13:36:28 +02:00
`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
`/suchbegriff` Suche(von Vorne) mit ? statt / von hinten
`Strg +O` Springt zur Stelle vor der Suche zurück
`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
2021-05-28 10:01:13 +02:00
## 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