dotfiles/cheat-sheets/vim.md

153 lines
4.2 KiB
Markdown

## 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
## Buffer in Splits/Tabs öffnen
* 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
`<C-X>` öffne als horizontalen Split(nur ctrlp)
## NERDtree
`m` Menü
`i` horizontaler Split
`s` vertikaler Split
## Übersicht Buffer
`<Leader> b`
## Buffer auswählen
`<C-t>` neuer Buffer
`<C-l>` nächster Buffer
`<C-h>` letzter Buffer
`<C-q>` schließt Buffer und wechselt vorherigen
## Autovervollständigung von Klammern usw.
`<Strg + P>` Toggle on/off
## NERDtree aufrufen
`<F2>`
## Dateien verschieben
* in NERDtree
`<m>`
`a` hinzufügen
`m` move
`c` copy
`r` remove
`l` ls
## git interactives Staging
`:G stage -p` (`alias stagep`)
## git Befehle
`:G <befehl>`
## git als shell verlassen
`gq`
## alles schließen (und speichern)
`:qa(w)`
## Buffer "maximieren"
`:on`
# Navigation
`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
## Buffer tauschen
`Strg + W X`
## neuen leeren Split öffnen
`Strg + W n`
## neuen Buffer öffnen
`:e <name>`
## NERDtree rekursives expandieren von Ordner
`<O>`
## alle Zeilen ab Cursor löschen
`d Shift+G`
## Paste/No Paste
`aktiveren: set paste`
`deaktivieren: set nopaste`
## 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
`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
## Zeilen löschen/sortieren
1. `v` gehe in Visual Mode
2. markiere Text
3. `:sort` (Sortiert)
oder
3. `:sort u` (Sortiert und löscht doppelte)
## Löschen
`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
## Cursor bewegen
`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
## Sonstiges
`: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
## 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
`/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
## Kopieren und Einfügen
1. `v` gehe in Visual Mode
2. markiere Text
3. `y` kopieren
4. gehe an Ziel
5. `p` einfügen
## ausschneiden und Einfügen
2. `d` für den Bereich der ausgeschnitten werden soll
4. gehe an Ziel
5. `p` einfügen