Skip to content

Instantly share code, notes, and snippets.

@haslinger
Created May 19, 2016 05:58
Show Gist options
  • Save haslinger/cffa0dc8304827f40e65d4c86fb95cd2 to your computer and use it in GitHub Desktop.
Save haslinger/cffa0dc8304827f40e65d4c86fb95cd2 to your computer and use it in GitHub Desktop.
surround.vim
= 20160519 =
:global /{pattern}/ [cmd] führt ex-Kommando cmd für alle Zeilen, die pattern erfüllen, aus
:vglobal ... die pattern nicht erfüllen ...
qaq löscht Register a
:g/pattern/yank A in Register a anhängen
"ap inhalt Register a einfügen
:g/pattern/[range] sort sortiert Bereich range
= 20160518 =
<CTRL-r>" unbenanntes Register einfügen
<CTRL-r>0 yank-Register einfügen
<CTRL-SHIFT-v> Zwischenablage einfügen
q{register} Makro Aufnahme start und stop
:reg{register} Register anzeigen
@{register} Register ausführen
@@ letztes Register wiederholen
:normal @a Register für alle Zeilen in Selektion ausführen
q{Register} an Register anhängen (Grossbuchstabe)
@argdo normal @a run Register for all files in argument list
:wall Speichere alle Buffer
:wnext Speichere und wechsle zu nächestem Buffer
:let i=0 Variable zuweisen
:echo i Variable ausgeben
:let i += 1 Variable inkrementieren
:put a Makro einfügen
\c Muster case insensitive
\C Muster case sensitive
\M magische Muster
\v sehr magische Muster
\V buchstäbliche Suche (very nomagic)
\1 \2 Submatch
\0 gesamter Match
\w Zeichen in Wort
\W kein Wort-Zeichen
( | ) oder
< > Wortbegrenzer
\zs \ze Matchbeginn und Matchende
escape({string},{chars}) Zeichen escapen
:wrapscan Suche wird am Bufferbeginn fortgesetzt
? Rückwärtssuche
:set hlseach Suchergebnisse hervorheben
:noh Hervorhebung temporär deaktivieren
:%s///gn Suchergebnisse zählen
ea End append (am Ende des Wortes anhängen)
angehängtes e am Ende des Matches positionieren
q/ Kommandozeilenfenster
:substitute Ersetzen
g in der ganzen Zeile
c manuelle Bestätigung
\v= Vimscript ausführen
% im ganzen Buffer
g& letzte Suche global wiederholen
:'<,'>&& letzte Suche mit visueller Selektion wiederholen
= 20160516 =
:v visueller Modus
dann:
a oder i äußere oder innere Selektion
)]}>'"`t einschließendes Zeichen, t für tag
Auswahlen sind als Motions für c, d, y verwendbar
m{a-zA-Z} set mark
'{mark} move to line of mark
`{mark} move to position of mark
automatische Marken:
`` Position vor letztem Sprung im aktuellen File
`. Ort der letzten Änderung
`^ Ort der letzten Einfügung
`[ Start des letzten Yank oder Change
`] Ende des letzten Yank oder Change
`< Start der letzten visuellen Selektion
`> Ende der letzten visuellen Selektion
:% passende Klammer
CTRL-o nächster Eintrag in Jump Liste
CTRL-i voriger Eintrag in Jump Liste
{count}G Sprung zur Zeilennummer
//pattern<CR>/?pattern<CR>/n/N Sprung zum nächsten/letzten Vorkommen von pattern
( / ) nächste / letzte Klammer
{ / } nächster / letzter Absatz
H / M / L Seitenanfang, -mitte, -ende
gf Filename unter Cursor
CRTL-] Definition
g; letzte Modifikation
g, nächste Modifikation
:set path? Pfad inspizieren
:vimgrep /pattern/ ** Suche im Projekt
xp Zeichen transponieren
ddp Zeilen transponieren
"{register} Register spezifizieren und überschreiben
"{Register} in Register appenden
"_ Schwarzes Loch Register
"+ Zwischenablage
"* Selektion
"= Ausdrucksregister
"% aktuelles File
"# anderes File
". letzter eingefügter Text
": letzter Ex Befehl
"/ letztes Suchmuster
= 20160504 =
:!ruby % aktuelle Datei mit ruby Parser ausführen
:shell startet Shell
CTRL-z suspended Vim
:read !{command} liest Ausgabe von command in den aktuellen Buffer
:write ! führt Buffer zeilenweise in Shell aus
:{range}!{filter} filtert die Zeilen in range durch das externe Programm filter
:ls Buffer list
:bnext nächsten Buffer
:bprev vorhergegangenen Buffer
:blast letzten Buffer
:bfirst ersten Buffer
:buffer N Buffer Nummer N
:buffer {bufnam} Buffer Name bufnam
:bufdo ex Kommando in allen Buffern ausführen
:bdelete N1 N2 Buffer N1 und N2 löschen
:N,M bdelete Buffer N bis M löschen
:args Argumentliste
:args {arglist} Füllt Argumentliste mit arglist
:args `command` Führt command in der Shell aus und befüllt Argumentliste mit Ausgabe
:next nächste Datei aus Argumentliste
:prev letzten Buffer aus Argumentliste
:bnext nächsten Buffer (auch bei Änderungen), aktueller wird hidden (falls Änderungen)
:edit! Datei neu einlesen
:qa[ll] alle Dateien schließen
:qa[ll]! alle Dateien schließen, auch geänderte
:wa[ll]! alle Dateien schreiben
:argdo {command} Kommando command für alle Buffer in der Argumentliste durchführen
CTRL-w s Fenster horizontal teilen
CTRL-w v Fenster vertikal teilen
sp[lit] {file} Fenster horizontal teilen und file laden
vsp[lit] {file} Fenster vertikal teilen und file laden
CTRL-w w Fenster cyclen (auch CTRL-w CTRL-w)
CTRL-w h Focus nach links
CTRL-w j Focus nach unten
CTRL-w k Focus nach oben
CTRL-w l Focus nach rechts
:cl[ose] Fenster schließen
:on[ly] alle anderen Fenster schließen
CTRL-w = Fenster gleich groß machen
CTRL-w _ Fensterhöhe maximieren
CTRL-w | Fensterbreite maximieren
[N]CTRL-w _ aktuelles Fenster N Zeilen hoch machen
[N]CTRL-w | aktuelles Fenster N Spalten breit machen
:lcd {path] setzt path als aktuelles Arbeitsverzeichnis für das aktive Fenster
:tabedit {file} öffnet file in neuem Reiter
:tabedit öffnet neuen Reiter
CTRL-w T schiebt aktuelles Fenster in neuen Reiter
:close schließt Fenster und Reiter
:tabclose schließt Reiter
:tabonly schließt alle anderen Reiter
{N}gt gehe zu Reiter N
gt gehe zu nächstem Reiter
gT gehe zu letztem Reiter
:tabmove [N] Reiter zu Position N verschieben
:pwd Arbeitsverzeichnis
:edit %:h %... Verzeichnis des aktuellen Puffers, :h entfernt Dateiname
:find Datei im path suchen
:Explore öffnet Netrw
:e . öffnet Nerdtree
:Sexplore öffnet Netrw horizontal gesplittet
:Vexplore öffnet Netrw vertikal gesplittet
netrw-% Datei erstellen
netrw-d Verzeichnis erstellen
netrw-rename umbennenen
:!mkdir -p %:h fehlender Verzeichnisse für aktuellen Buffer erstellen
:w !sudo tee % > /dev/null als Superuser speichern
g{move} Display-Zeilen Navigation
^ erstes Zeichen
$ letztes Zeichen
w nächstes Wort
b letztes Wort
e Ende des Wortes
ge Ende des letzten Wortes
W nächstes WORT
B letztes WORT
E Ende des WORTES
gE Ende des letzten WORTES
f{char} Suche Zeichen char
F{char] Suche Zeichen char rückwärts
t{char} Zeichen vor nächstem char
T{char] Zeichen nach letztem char
; nächstes Suchergebnis für f
, Suchergebnis rückwärts
dt{char} Bis vor nächstes char löschen
/{text} search for text
s nächstes Suchergebnis für /
Globs:
* Wildcard
** Wildcard, rekursiv in die Filestruktur hinunter
= 20160503 =
v visuellen Modus aktivieren
V zeilenweisen visuellen Modus aktivieren
CTRL-v blockweisen visuellen Modus aktivieren
gv letzten visuellen Modus aktivieren
o Ende im visual Mode switchen
vit Tag Inhalt in visual Mode selektieren
: Kommandozeilenmodus aktivieren
ex Kommandos:
yank Einfügen
delete Löschen
put Register einfügen
copy Kopieren
move Verschieben
join Zeilen zusammenführen
normal Normal Modus Kommando ausführen
substitute Ersetzen
global global Ersetzen
read Datei lesen
write Datei schreiben
tabnew Tabulator erzeugen
split Fenster teilen
prev letztes Argument
next nächstes Argument
bprev letzter Buffer
bnext nächster Buffer
{line} Zeile line adressieren
{start, end} Zeilen start bis end adressieren
{.} aktuelle Zeile
{$} letzte Zeile = Dateiende
{g} Dateianfang
{%} alle Zeilen
{/pattern/+offset1,/pattern2/-offset2} Zeilen von pattern plus offset1 bis pattern1 minus offset2
CTRL-rCTRL-w aktuelles Wort einfügen
* aktuelles Wort global suchen
%s//CTRL-rCTRL-w/g alle Suchergebnisse der letzen Suche durch aktuelles Wort ersetzen
q: Command line buffer
q/ Search buffer
= 20160502 =
. letzte Änderung wiederholen
s Zeichen löschen und Einfügemodus aktivieren
f{char} nächste Instanz von char suchen
; letzte Suche wiederholen
@: ex-Kommando wiederholen
A zum Zeilenende und Einfügemodus aktivieren
a Einfügemodus hinter aktuellem Zeichen aktivieren
, letzte Suche rückwärts wiederholen
& letzte Ersetzung wiederholen
F{char] letzte Instanz von char suchen
n Mustersuche wiederholen
N Mustersuche rückwärts wiederholen
qx{change}q eine Folge von Änderungen durchführen
@x eine Folge von Änderungen wiederholen
* nächste Instanz von Wort unter Cursor suchen
o Einfügemodus in der nächsten Zeile öffnen
CTRL-a Addieren
CTRL-x Subtrahieren
zz aktuelle Zeile in die Mitte scrollen
K Suche in man page
J Zeilen zusammenführen
ga Zeichencode für Zeichen unter Cursor ausgeben
R Ersetzungsmodus aktivieren
gR virtuellen Ersetzungsmodus aktivieren
Operatoren:
c Ändern
d Löschen
y Kopieren (yank)
g- Großschreibung ändern
gu klein Schreiben
gU groß Schreiben
> Einrücken
< Ausrücken
= automatisch Einrücken
! Filter durch externes Programm
Einfügemodus Befehle:
CTRL-h Backspace
CTRL-w Wort löschen
CTRL-u Zeile löschen
CTRL-[ ESC
CTRL-O Insert normal mode
CTRL-r{register} Zwischenablage register einfügen
CTRL-rCTRL-p{register} Zwischenablage register ohne Einrückung einfügen
CTRL-r= Ausdrucksregister
CTRL-v{code} Sonderzeichen code einfügen
CTRL-k{digraph} fügt digraph ein
= 20160501 =
k hoch
j runter
h links
l rechts
:w Speichern
:q! Verlassen ohne Speichern
x Zeichen löschen
i Springen zum Einfügemodus
ESC Springen zum Kommandomodus
A Text am Ende der Zeile einfügen
:wq Speichern und Verlassen
:dw Wort löschen
d$ bis zum Zeilenende löschen
dw Wort und Leerzeichen löschen
de Wort läschen
2w zwei Wörter vorwärts
3e Cursor auf Ende des dritten Wortes
d2w zwei Wörter löschen
dd Zeile löschen
2dd zwei Zeilen löschen
0 zum Zeilenanfang gehen
u undo letztes Kommando
U Zeile wiederherstellen
CTRL-R Redo
p Unterhalb einfügen (put)
rx Ersetzen durch x
ce Änderung bis zum Wortende (change)
c$ Änderung bis zum Zeilenende
CTRL-G Dateiposition und Status
G zum Dateiende
gg zum Dateianfang
7G zur Zeile 7 gehen
/text Suche nach text
n Weitersuchen
?text rückwärts Suche nach text
CTRL-o zurück gehen
CTRL-i vorwärts gehen
% passende Klammer suchen
:s/alt/neu/g ersetzt alt durch neu
:3,7s/alt/neu/g ersetzt alt durch neu von Zeile 3 bis Zeile 7
:%s/alt/neu/g ersetzt alt durch neu in der gesamten Datei
:%s/alt/neu/gc ersetzt nach Rückfrage alt durch neu in der gesamten Datei
:!command führt command als externes Kommando aus
:w dateiname speichert unter dateiname
v Bewegung :w dateiname speichert ausgewählten Text unter dateiname
:r dateiname Datei einlesen
:r !command Ausgabe von command Einlesen
o Zeile unterhalb öffnen
O Zeile oberhalb öffnen
a Text nach dem Cursor einfügen
R Ersetzungsmodus
v Bewegung y Bewegung p Text verschieben
yw Wort kopieren
:set option Option setzen
Option ic / noic ignore case
Option hls highlight search
Option is Teilübereinstimmungen anzeigen
:nohlsearch Hervorhebung deaktivieren
no vor Option Option negieren
:help Hilfe aufrufen
:help command command in der Hilfe suchen
CTRL-w CTRL-w zwischen Fenstern springen
:r $VIMRUNTIME/vimrc_example.vim .vibrc Beispiel einlesen
CTRL-d Vervollständigungen anzeigen
TAB Vervollständigung anwenden
:set nocp vi Kompatibilitätsmodus deaktivieren
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment