Suche…


Einführung - Kurzer Hinweis zum Normalmodus

Im Normalmodus können Befehle durch direkte Tastenkombinationen eingegeben werden (z. B. u , um die letzte Änderung rückgängig zu machen). Diese Befehle haben häufig Äquivalente im 'ex'-Modus, auf die Sie durch Eingabe eines Doppelpunkts : zugreifen können, der Sie in einem einzeiligen Puffer am unteren Rand des Vim-Fensters ablegt.

Im 'Ex'-Modus geben Sie nach der Eingabe des Doppelpunkts einen Befehlsnamen oder seine Abkürzung gefolgt von Enter ein , um den Befehl auszuführen. Also : undo Enter bewirkt dasselbe wie das direkte Tippen von u im Normalmodus.

Sie sehen, dass die direkten Befehle oft schneller sind (einmal gelernt) als die 'ex'-Befehle für die einfache Bearbeitung. Der Vollständigkeit halber werden sie jedoch in der folgenden Dokumentation, soweit möglich, angezeigt, wenn beide verfügbar sind.

Den meisten dieser Befehle kann auch eine Zählung vorangestellt werden, indem eine Zahl vorangestellt oder eingefügt wird. Durch Eingabe von 3dd im Normalmodus werden beispielsweise drei Zeilen (beginnend an der aktuellen Cursorposition) gelöscht .

Grundlegendes Rückgängig machen und Wiederholen

Rückgängig machen

Befehl : Beschreibung
u u undo Machen Sie die letzte Änderung rückgängig
5u Die letzten fünf Änderungen rückgängig machen (beliebige Anzahl verwenden)

Bitte beachten Sie, dass in Vim die 'letzte Änderung' je nach Modus variiert wird. Wenn Sie den Einfügemodus ( i ) aufrufen und einen ganzen Absatz eingeben, bevor Sie zum Normalmodus ( Esc ) zurückkehren, ist dieser gesamte Absatz der Fall als letzte Änderung betrachtet.

Wiederholen

Befehl : Beschreibung
Ctrl-R red redo Wiederholt die letzte rückgängig gemachte Änderung
2Ctrl-R Wiederholen Sie die beiden letzten rückgängig gemachten Änderungen (verwenden Sie eine beliebige Zahl).

Es gibt eine andere Möglichkeit, Änderungen in Vim rückgängig zu machen und wiederherzustellen, die etwas anders behandelt werden. Wenn Sie eine Änderung mit u rückgängig machen, durchlaufen Sie die Knoten in einem 'Baum' Ihrer Änderungen, und drücken Sie die Tastenkombination Strg-R , um die Knoten in der Reihenfolge nach unten zu bewegen. (Der Undo-Baum ist ein separates Thema und zu komplex, um hier behandelt zu werden.)

Sie können auch U (also Großbuchstaben) verwenden, um alle letzten Änderungen in einer einzelnen Zeile (der Zeile, in der Ihre letzten Änderungen vorgenommen wurden) zu entfernen. Dies schließt nicht die Knoten des Baumes in der gleichen Weise wie u durchlaufen. Mit U zählt tatsächlich als eine Änderung selbst - ein anderen Knoten vorwärts auf dem Baum - so dass , wenn Sie U ein zweites Mal unmittelbar nach dem ersten Drücken sie als Redo - Befehl handeln.

Jeder hat seine Verwendung, aber u / : undo sollte die meisten einfachen Fälle abdecken.

Wiederholen Sie die letzte Änderung

Der Befehl Wiederholen, der mit der Punkt- oder Punkttaste ( . ) Ausgeführt wird, ist nützlicher als er zuerst erscheint. Einmal erlernt, werden Sie es oft verwenden.

Befehl : Beschreibung
. Wiederholen Sie die letzte Änderung
10 Wiederholen Sie die letzte Änderung 10 Mal

Also dann, für ein sehr einfaches Beispiel, wenn Sie eine Änderung an Zeile macht 1 durch i eingeben I Esc, mit folgendem Ergebnis:

1 I made a mistake
2  made a mistake
3  made a mistake

Der Cursor befindet sich an Position 1 der Zeile 1, und Sie müssen nur noch j drücken, um die nächsten beiden Zeilen zu fixieren . zweimal - das heißt, j bewegt sich eine Zeile nach unten und . Um die letzte Änderung zu wiederholen, war das Hinzufügen des I . Sie müssen nicht zweimal in den Einfügemodus zurückspringen, um diese Zeilen zu korrigieren.

Es wird viel leistungsfähiger, wenn es verwendet wird, um Makros zu wiederholen.

Kopieren, Ausschneiden und Einfügen

In Vim werden diese Operationen anders gehandhabt als in fast jedem anderen modernen Editor oder Textverarbeitungsprogramm ( Ctrl-C , Ctrl-X , Ctrl-V ). Um dies zu verstehen, müssen Sie etwas über Register und Bewegungen wissen.

Hinweis: In diesem Abschnitt wird das Kopieren und Ausschneiden von Bildern oder das Riechen des Bereichs nicht behandelt, da dies nicht in den normalen Modus und die grundlegende Bearbeitung fällt.

Register

Vim verwendet das Konzept von Registern , um mit dem Verschieben von Text innerhalb des Programms selbst umzugehen. Windows verfügt zu diesem Zweck über eine einzige Zwischenablage, die einem einzelnen Register in Vim entspricht. Beim Kopieren, Ausschneiden und Einfügen in Vim gibt es Möglichkeiten, einen ähnlich einfachen Bearbeitungsworkflow zu verwenden (bei dem Sie nicht über Register nachdenken müssen), es gibt jedoch auch viel komplexere Möglichkeiten.

Ein Register dient der Eingabe / Ausgabe eines Befehls, indem dem Befehl "" und einem Kleinbuchstaben vorangestellt wird.

Bewegungen

Eine Bewegung in Vim ist ein Befehl, der die Cursorposition an eine andere Stelle verschiebt. Beim Kopieren, Ausschneiden und Einfügen im Normalmodus sind die Möglichkeiten der Textauswahl für die Bewegung nur durch Ihr Bewegungswissen eingeschränkt. Einige werden unten veranschaulicht.

Kopieren und Schneiden

Die Grundbefehle zum Kopieren und Ausschneiden basieren auf y ('yank' zum Kopieren) und d ('delete', zum Ausschneiden). Die Ähnlichkeiten werden in der folgenden Tabelle angezeigt.

Befehl : Beschreibung
y {Bewegung} Kopieren Sie den durch die Bewegung angegebenen Text in das Standardregister
yy Kopieren Sie die aktuelle Zeile in das Standardregister, linewise
Y Kopieren Sie die aktuelle Zeile in das Standardregister (Synonym für yy ).
"ayiw Kopieren Sie das Wort, auf dem sich der Cursor befindet, in das Register 'a'.
20 "byy Kopiere zwanzig Zeilen, beginnend mit dem Cursor, in das Register 'b'.
d {Bewegung} Schneiden Sie den durch die Bewegung angezeigten Text in das Standardregister
dd Schneiden Sie die aktuelle Zeile in das Standardregister, linewise
D Schneiden Sie vom Cursor bis zum Zeilenende in das Standardregister (KEIN Synonym für dd )
"adiw Schneiden Sie das Wort, auf dem sich der Cursor befindet, in das Register 'a'.
20 "bdd Schneiden Sie zwanzig Zeilen ab dem Cursor in das Register 'b'.

Hinweis: Wenn etwas kopiert oder zeilenweise ausgeschnitten wird , wird durch das unten dargestellte Einfügeverhalten Text vor oder hinter der aktuellen Zeile (anstelle des Cursors) eingefügt . Beispiele folgen zur Verdeutlichung.

Einfügen

Es gibt verschiedene Möglichkeiten, in Vim einzufügen, je nachdem, was Sie erreichen möchten.

Befehl : Beschreibung
p Fügen Sie nach dem Cursor das ein, was sich im Standardregister befindet
P Fügen Sie das, was sich im Standardregister befindet, vor dem Cursor ein
"ap Fügen Sie den Inhalt des Registers 'a' nach dem Cursor ein
"cP Fügen Sie den Inhalt des Registers 'c' vor dem Cursor ein

Wie führe ich ein wirklich einfaches Ausschneiden und Einfügen aus?

Wenn ich folgenden Text habe:

1 This line should be second
2 This line should be first

Ich kann das einfachste Ausschneiden und Einfügen durchführen, indem ich den Cursor irgendwo in Zeile 1 platziere und ddp eingebe . Hier sind die Ergebnisse:

1 This line should be first
2 This line should be second

Was ist passiert? dd ‚Cuts‘ die erste Zeile (linewise) in das Standardverzeichnis - die nur eine Sache zu einer Zeit, wie die Windows - Zwischenablage enthalten - und p Pasten der Linie nach dem aktuellen, die aufgrund des Befehls dd gerade geändert hat.

Hier ist ein nicht ganz einfaches Beispiel. Ich muss ein paar Worte bewegen. (Dies ist nicht notwendig, aber Sie können dieses Prinzip auf größere Codeabschnitte anwenden.)

1 These words order out are of

Ich kann w wiederholen, um zum 'o' am Anfang von 'order' zu gelangen (oder b, wenn ich es einfach getippt und meinen Fehler erkannt habe).

Dann "bitte" , um "Ordnung" in Register "a" zu setzen.

Dann w auf den ‚a‘ in ‚sind‘ zu bekommen.

Im Anschluss würde ich "bdaw" eingeben , um "are" in das Register "b" zu setzen. Nun habe ich folgendes angezeigt:

1 These words out of

Um klar zu sein, jetzt ist 'order' im Register 'a' und 'are' ist im Register 'b' wie zwei separate Zwischenablagen.

Um die Wörter richtig zu ordnen, tippe ich b , um zum 'o' in 'out' zu gelangen, und dann "bP to put" sind "from register" b "vor" out ":

1 These words are out of

Jetzt gebe ich A ein , um zum Ende der Zeile zu gelangen, gefolgt von Space Esc (vorausgesetzt, es gibt kein Leerzeichen nach 'of') und "ap" , um 'order' dort zu platzieren, wo es hingehört.

1 These words are out of order

Fertigstellung

Mit der Vervollständigung können Sie die in einem Dokument verwendeten Wörter abgleichen. Wenn Sie ein Wort eingeben, stimmen Sie mit Strg p oder Strg n mit vorherigen oder nächsten ähnlichen Wörtern im Dokument überein.

Dies kann sogar mit dem Strg-X- Modus kombiniert werden, um ganze Zeilen zu vervollständigen. Geben Sie beispielsweise Folgendes ein:

This is an example sentence.

Gehen Sie dann zur nächsten Zeile und geben Sie den gleichen Satz ein:

Thi

und dann Strg p drücken, was zu folgenden Ergebnissen führt:

This

Wenn Sie sich noch im Einfügemodus befinden, drücken Sie Strg x Strg p, und das nächste Wort wird beendet.

This is

Fahren Sie mit Strg x Strg p fort, bis die gesamte Zeile abgeschlossen ist.

Wenn Sie wissen, dass Sie eine komplette Zeile abschließen möchten, geben Sie Folgendes ein:

This is an example sentence.

dann in der nächsten Zeile:

Thi

und drücken Sie x Ctrl l , um die Zeile zu vervollständigen.

Wenn der Abschluss eines Dateinamens erfolgt, kann mit Strg x Strg f dieses Verzeichnis vervollständigt werden. Art:

~/Deskt

dann drücke Strg x Strg f und:

~/Desktop

wird abgeschlossen (wenn an diesem Ort). Ctrl x Ctrl f kann dann wiederholt zum Auflisten der Dateien auf dem Desktop verwendet werden.



Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow