Ich bin ein Vim-Neuling und benutze MacVim unter OSX Snow Leopard. Eine der häufigsten Aktionen, die ich ausführen muss, ist das Verschieben des Cursors auf eine neue Zeile, aber auch das Verschieben des Textes nach dem Cursor in die neue Zeile. Ich weiß, dass das Drücken von 'o' im normalen oder visuellen Modus den Cursor auf eine neue Zeile bewegt und den Modus zum Einfügen umschaltet.
Was ich tun möchte ist, den Cursor auf eine neue Zeile zu bewegen und den Text nach dem Cursor auch auf diese neue Zeile zu verschieben, vorzugsweise im normalen Modus bleiben? Ist das möglich? Wie kann ich diese Aufgabe durchführen?
Sie wollen also alles in die aktuelle Zeile verschieben, die nach dem Cursor auf die nächste Zeile kommt? Lesen: Zeilenumbruch einfügen ??
%Vor% Um diese Folge von Tastenanschlägen einem einzelnen Schlüssel zuzuordnen, folgen Sie dem @thb Vorschlag und verwenden Sie :map
Befehl:
Geben Sie je nach gewünschtem Effekt entweder den Befehl
ein %Vor%oder der Befehl
%Vor% Danach wird durch Drücken von <F2>
der Job mit einem einzigen Tastendruck ausgeführt.
Aber natürlich hat auch @Alex Recht. Drücken Sie einfach o
then Esc
, wenn Sie es brauchen, ist nicht schlecht.
Wie ich in diesem Beitrag geantwortet habe, Wie füge ich einen Zeilenumbruch ein, wo der Cursor steht, ohne in den Einfügemodus in Vim zu wechseln? .
Bitte versuchen Sie Control + j
.
Der Code unten erreicht das gleiche Verhalten wie "normale" Editoren (für den Mangel an besseren Begriffen in meinem Kopf), außer dass Sie "Enter" zweimal statt einmal drücken müssen.
Ich wollte auch den Raum loswerden, wenn es direkt vor meinem aktuellen Charakter ist.
Es könnte einen einfacheren Weg geben und ich begrüße die Änderungen: -)
%Vor%Durch Drücken dieser Taste wird zweimal in den Einfügemodus gewechselt. Der Grund, warum ich dieses Mapping verwende (zweimal eingeben), liegt daran, dass ich diese Funktionalität mit anderen Texteditoren durch Drücken einer Eingabetaste gewohnt war. Außerdem ist die Eingabe zweimal schnell.
Eine weitere Sache, die ich in diesem Zusammenhang als nützlich empfand, war, vim zu erlauben, sich direkt nach dem letzten Zeichen zu bewegen (falls ich das letzte Zeichen in eine neue Zeile verschieben wollte). Also habe ich auch in meinem ~/.vimrc
folgendes:
Beachten Sie, dass ich nnoremap
( n ormaler Modus no n- re kursiv) anstelle von map
(was ist sehr gefährlich) (überprüfen Sie dies für weitere Informationen zu den Unterschieden Ссылка )
Tags und Links vim