:h[elp] <keyword> - Hilfe für <keyword> ( verwenden Sie "<>" nicht ):sav[eas] <file> - Speichern <file> als:clo[se] - Schließen Sie den Strombereich:ter[minal] - Öffnen Sie ein Terminalfenster K - Open Man Page für Wort unter dem Cursor
Tipp : - Führen Sie Vimtutor in einem Terminal aus, um die ersten VIM -Befehle zu lernen.
h - Cursor links bewegen
j - Cursor nach unten bewegen
k - Cursor auf bewegen
l - Cursor nach rechts bewegen
H - Wechseln Sie auf den Bildschirm
M - Bewegen Sie sich in die Mitte des Bildschirms
L - Bewegen Sie sich zum Ende des Bildschirms
w - Vorwärts zum Beginn eines Wortes springen
W - Vorwärts zum Beginn eines Wortes springen (Wörter können Interpunktion enthalten)
e - Vorwärts springen bis zum Ende eines Wortes
E - Vorwärts an das Ende eines Wortes springen (Wörter können Interpunktion enthalten)
b - rückwärts zum Beginn eines Wortes springen
B - rückwärts zum Beginn eines Wortes springen (Wörter können Interpunktion enthalten)
% - Wechseln Sie zum Matching -Zeichen (Standard unterstützte Paare: '()', '{}', '[]' - Verwenden: H Matchpairs in VIM für weitere Informationen)
0 - Springe zum Start der Linie
^ - Springen Sie zum ersten Nicht -Blank -Charakter der Linie
$ - springen Sie bis zum Ende der Linie
; - Wiederholen Sie die vorherige Bewegung von F, T, F oder T
, - Wiederholen Sie frühere F, T, F oder T -Bewegung, rückwärts
} - Springen Sie zum nächsten Absatz (oder Funktion/Block, wenn Sie Code bearbeiten).
{ - Springen Sie zum vorherigen Absatz (oder Funktion/Block, wenn Sie Code bearbeiten)
g_ - Springen Sie zum letzten Nicht -Blank -Charakter der Liniegg - Gehen Sie in die erste Zeile des DokumentsG - Gehen Sie zur letzten Zeile des Dokuments5gg oder 5G - Gehen Sie zu Zeile 5gd - Umzug zur lokalen ErklärunggD - Wechseln Sie zur globalen Erklärungfx - Springen Sie zum nächsten Auftreten von Charakter xtx - Springen Sie vor dem nächsten Auftreten von Charakter xFx - Sprung zum vorherigen Auftreten von Charakter xTx - Sprung nach früherer Auftreten von Charakter xzz - Mittelcursor auf dem Bildschirmgh - Cursor in die pevious Editor -Linie bewegengj - Move Cursor auf die nächste Editor -Linie bewegtg0 - Springe zum Beginn der Redakteurlinieg^ - zum ersten Nicht -Blank -Charakter in der Editor -Linie springeng$ - Springen Sie bis zum Ende der Redakteurlinie Ctrl + e - Bildschirm nach unten verschieben (ohne sich zu bewegen)
Ctrl + y - Bildschirm auf eine Zeile verschieben (ohne sich zu bewegenden Cursor)
Ctrl + b - Verschieben Sie einen Vollbildschirm zurück
Ctrl + f - Vorwärts bringen einen Vollbildschirm
Ctrl + d - Vorwärts 1/2 Ein Bildschirm bewegen
Ctrl + u - Zurück 1/2 einen Bildschirm zurückziehen
Tipp : - Präfix eines Cursorbewegungsbefehls mit einer Nummer, um ihn zu wiederholen. Zum Beispiel bewegt sich 4J 4 Zeilen nach unten.
Ctrl + h - Löschen Sie das Zeichen vor dem Cursor während des EinfügungsmodusCtrl + w - Wort vor dem Cursor während des Einfügungsmodus ein Wort löschenCtrl + j - Beginnen Sie eine neue Zeile im EinfügungsmodusCtrl + t - Eingeklagter (rechts) Zeile 1 Schaltbreite während des EinfügungsmodusCtrl + d - De -Indent (links bewegt) Zeile 1 Schaltbreite während des EinfügungsmodusCtrl + n - Einfügen (automatisch vollständig). Als nächstes übereinstreichen Sie sich vor dem Cursor während des EinfügungsmodusCtrl + p - Einfügen (automatisch vollständig) Vorherige Übereinstimmung vor dem Cursor während des EinfügungsmodusCtrl + rx - Fügen Sie den Inhalt des Registers x einCtrl + ws - Split -FensterCtrl + wv - Split -Fenster vertikal geteiltCtrl + ww - Windows wechselnCtrl + wq - Beenden Sie ein FensterCtrl + wx - Das aktuelle Fenster mit dem nächsten austauschenCtrl + w= - Machen Sie alle Fenster gleich Höhe und Breite gleichCtrl + wh - Cursor zum linken Fenster verschieben (vertikale Spaltung)Ctrl + wl - Cursor auf das rechte Fenster verschieben (vertikale Split)Ctrl + wj - Cursor in das Fenster unten verschieben (horizontale Split)Ctrl + wk - Cursor in das Fenster oben verschieben (horizontale Split) i - Vor dem Cursor einfügenI - Einlegen Sie am Anfang der Liniea - nach dem Cursor einfügen (anhängen)A - am Ende der Linie einfügen (anhängen)o - eine neue Zeile unterhalb der aktuellen Linie anhängen (öffnen)O - append (öffnen) eine neue Zeile über der aktuellen Linieea - am Ende des Wortes einfügen (anhängen)Esc - Ausgangseinsatzmodusr - Ersetzen Sie ein einzelnes ZeichenJ - Verbinden Sie die Linie unten mit dem aktuellen mit einem Raum dazwischengJ - Verbinden Sie die Linie unten mit dem aktuellen ohne Platz dazwischengwip - Reflow -Absatzg~ - Wechseln Sie den Fall bis zur Bewegunggu - Wechseln Sie in Kleinbuchstaben zur BewegunggU - Wechseln Sie in Großbuchstaben zur Bewegungcc - Änderung (Ersetzen) Ganze LeitungC - ändern (ersetzen) am Ende der Liniec$ - Änderung (ersetzen) am Ende der Linieciw - Ändern (ersetzen) das gesamte Wortcw - ändern (ersetzen) am Ende des Wortess - Charakter löschen und Text ersetzenS - Zeile löschen und Text ersetzen (wie CC)xp - Übertragen Sie zwei Buchstaben (löschen und einfügen)u - rückgängigU - wiederherstellen (rückgängig) zuletzt die Linie geändertCtrl + r - Redo. - Wiederholen Sie den letzten Befehl v - Visuelle Modus starten, Zeilen markieren, dann einen Befehl machen (wie Y -Yank)V - Visueller Modus starten.gv - Visueller Modus starten und die vorherige Auswahl erinnerno - Bewegen Sie sich zu einem anderen Ende des markierten BereichsCtrl + v - Visueller Blockmodus startenO - Bewegen Sie sich in eine andere Ecke des Blocksaw - Mark ein Wort markierenab - ein Block mit ()aB - ein Block mit {}at - ein Block mit <> Tagsib - innerer Block mit ()iB - Inner Block mit {}it - innerer Block mit <> TagsEsc - Visueller Modus beenden> - Text nach rechts verschieben< - Verschiebungstext linksy - yank (kopieren) markierter Textd - markierten Text löschen~ - Schaltkofferu - markierten Text in Kleinbuchstaben ändernU - markierten Text in Großbuchstaben ändern :reg[isters] - Register Inhalt anzeigen
"xy` - yank in Register x
"xp` - Inhalt des Registers x einfügen x
"+y` - Yank in das System -Zwischenablageregister
"+p` - Einfügen aus dem System -Zwischenablageregister einfügen
Tipp - Register werden in ~/.viminfo gespeichert und werden beim nächsten Neustart von Vim erneut geladen.
0 - Letzter Yank" - Unbenanntes Register, zuletzt löschen oder jank% - aktueller Dateiname# - alternativer Dateiname* - Zwischenablageinhalt (x11 primär)+ - Inhalt des Zwischenabletts (X11 -Zwischenablage)/ - Letztes Suchmuster: - Letzte Befehlszeile. - Zuletzt eingefügter Text- - Letzter kleiner (weniger als eine Linie) löschen= - Ausdrucksregister_ - Schwarzes Lochregister :marks* - Liste der Noten
ma - Setzen Sie die aktuelle Position für Mark A
`a - Spring zu Position von Mark A
y`a - yank text zur Position von Mark A
`0 - Gehen Sie zu der Position, an der Vim zuvor beendet wurde
`" - Gehen Sie zu der Position, wenn die letzte Bearbeitung dieser Datei zuletzt bearbeitet
`. - Gehen Sie zur Position der letzten Änderung in dieser Datei
`` - Gehen Sie vor dem letzten Sprung zur Position
:ju[mps] - Liste der Sprünge
Ctrl + i - Gehen Sie zu neuerer Position in der Sprungliste
Ctrl + o - Gehen Sie zu älterer Position in der Sprungliste
:changes - Liste der Änderungen
g, - Gehen Sie zu neuerer Position in der Änderungsliste
g; - Gehen Sie zu älterer Position in der Änderungsliste
Ctrl + ] - Springe zum Tag unter Cursor
Tipp - Um zu einer Marke zu springen, können Sie entweder einen Backtick ( ` ) oder einen Apostroph (') verwenden. Die Verwendung eines Apostrophs springt zum Anfang (erster Nicht-Schwarz) der Linie mit der Marke.
qa - Makro aufzeichnen aq - Makro aufnehmen@a - Makro ausführen@@ - - Last Run Makro wiederholen yy - yank (kopieren) eine Zeile2yy - Yank (Kopie) 2 Zeilenyw - yank (kopieren) die Zeichen des Wortes aus der Cursorposition zum Beginn des nächsten Wortesy$ - yank (kopieren) bis zum Ende der Zeilep - Stecken Sie die Zwischenablage nach Cursor ein (einfügen)P - Vor dem Cursor einfügen (einfügen)dd - eine Linie löschen (schneiden)2dd - 2 Zeilen löschen (Schnitt)dw - Löschen (schneiden) die Zeichen des Wortes aus der Cursorposition bis zum Beginn des nächsten WortesD - bis zum Ende der Linie löschen (schneiden)d$ - Löschen (Schnitt) bis zum Ende der Liniex - Cut -Charakter löschen >> - INTRIGHT (rechts bewegt) Zeile Eine Schaltbreite<< - De -indent (links bewegen) Zeile 1 Schichtweite>% - einen Block mit () oder {} (Cursor auf Klammer) ein.>ib - Eingeklagter innerer Block mit ()>at - Stellen Sie einen Block mit <> Tags ein3== - 3 Zeilen neu einnehmen=% - einen Block mit () oder {} (Cursor auf Klammer) neu einnehmen)=iB - Inner Block mit {} neu einnehmengg=G - den gesamten Puffer neu einnehmen]p - Einfügen und Einstellungen an die Stromlinie einstellen :w - Schreiben (Speichern) die Datei, aber beenden Sie nicht:w!sudo tee % - schreibe die aktuelle Datei mit sudo auf:wq oder :x oder ZZ - Schreiben (speichern) und beenden:q - beenden (fehlschlägt, wenn nicht gerettete Änderungen vorliegen):q! oder ZQ - Kündigen Sie und werfen Sie nicht gespeicherte Änderungen weg:wqa - Schreiben (speichern) und beenden Sie auf allen Registerkarten /pattern - Suche nach Muster?pattern - Rückwärts nach Muster suchenvpattern - 'Sehr magisches' Muster: Nicht -alphanumerische Zeichen werden als spezielle Regex -Symbole interpretiert (keine Flucht erforderlich)n - Die Suche in die gleiche Richtung wiederholenN - Die Suche in entgegengesetzte Richtung wiederholen:%s/old/new/g - Ersetzen Sie alle alte durch neue in der Datei:%s/old/new/gc - Ersetzen Sie alle alte durch die gesamten Datei mit Bestätigungen:noh[lsearch] - Entfernen Sie die Hervorhebung von Suchübereinstimmungen:vim[grep] /pattern/ {`{file}`}**** - Suche nach Muster in mehreren Dateien ** eg :vim[grep] /foo/ **/*:cn[ext] - Springe zum nächsten Spiel:cp[revious] - Springe zum vorherigen Spiel:cope[n] - Öffnen Sie ein Fenster, das die Liste der Übereinstimmungen enthält:ccl[ose] - Schließen Sie das QuickFix -Fenster :tabnew or :tabnew {page.words.file} - Öffnen Sie eine Datei in einer neuen RegisterkarteCtrl + wT - Verschieben Sie das aktuelle Split -Fenster in seine eigene Registerkartegt oder :tabn[ext] - zur nächsten Registerkarte wechselngT OR :tabp[revious] - Weiter zur vorherigen Registerkarte#gt - Überziehen Sie zur Registerkartennummer # #:tabm[ove] # - Die aktuelle Registerkarte in die # tH -Position verschieben (aus 0 indexiert):tabc[lose] - Schließen Sie die aktuelle Registerkarte und alle Fenster:tabo[nly] - Schließen Sie alle Registerkarten mit Ausnahme des aktuellen:tabdo command - Führen Sie den Befehl auf allen Registerkarten aus (zB :tabdo q - Schließt alle geöffneten Registerkarten) :e[dit] Datei - Bearbeiten Sie eine Datei in einem neuen Puffer:bn[ext] - Gehen Sie zum nächsten Puffer:bp[revious] - Gehen Sie zum vorherigen Puffer:bd[elete] - einen Puffer löschen (eine Datei schließen):b[uffer]# - Gehen Sie zu einem Puffer mit Index #:b[uffer] <file> - Gehen Sie zu einem Puffer von <file> (_remove das "<>"):ls oder :buffers - Alle offenen Puffer listen:sp[lit] <file> - Öffnen Sie eine <file> in einem neuen Puffer und Split -Fenster:vs[plit] <file> - Öffnen Sie eine <file> in einem neuen Puffer und vertikal geteiltes Fenster:vert[ical] ba[ll] - Alle Puffer als vertikale Fenster bearbeiten:tab ba[ll] - Alle Puffer als Registerkarten bearbeiten zf - Definieren Sie manuell eine Falte zur Bewegungzd - Falten Sie die Falten unter dem Cursor löschenza - Umschalten unter dem Cursorzo - Falten Sie unter dem Cursor die Faltungzc - Falten Sie unter dem Cursor zusammen.zr - reduzieren (öffnen) alle falten um eine Ebenezm - Falten Sie mehr (schließen) alle Falten um eine Ebenezi - Faltungsfunktionalität umschalten]c - Sprung zum Beginn der nächsten Änderung[c - Sprung zum Beginn der vorherigen Änderungdo oder :diffg[et] - erhalten (Get) Differenz (von einem anderen Puffer) erhalten (von einem anderen Puffer)dp OR :diffpu[t] - Differenz (zu einem anderen Puffer) setzen:diffthis - das Stromfenster Teil von Diff machen:dif[fupdate] - Aktualisieren Sie Unterschiede:diffo[ff] - Schalten Sie den Diff -Modus für das aktuelle Fenster aus