den Text nach dem Cursor auf eine neue Zeile verschieben

8

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?

    
Anup 01.04.2012, 13:18
quelle

6 Antworten

5
%Vor%

Dies hält vi im Einfügemodus.

    
prongs 01.04.2012, 20:02
quelle
15

Wenn der Cursor auf einem <space> steht wie in ( [] markiert den Cursor):

%Vor%

Am einfachsten ist r<CR> , das heißt "ersetze das aktuelle Zeichen durch einen Zeilenumbruch".

Andernfalls verwenden Sie die @ knittl-Lösung.

    
romainl 01.04.2012 13:56
quelle
11

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:

%Vor%     
knittl 01.04.2012 13:44
quelle
2

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.

    
thb 01.04.2012 13:37
quelle
2

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 .

    
Alan Dong 10.04.2014 19:23
quelle
0

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:

%Vor%

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 Ссылка )

    
Abdo 11.11.2014 09:15
quelle

Tags und Links