2013-03-08 17 views
6

Wer weiß Tricks in vim, um einfach zwei Codezeilen zu tauschen? Ich weiß, dass der Austausch benachbarter Linien trivial ist, aber sagen wir, ich wollte die Linie 23 durch die Linie 52 ersetzen. Ist das möglich?Line Swapping in Vim

+3

ESC ->: 23 -> dd ->: 51 -> p -> k -> dd ->: 22 -> p :) – Lucas

Antwort

15

ja!

:23m52|51m22 

drücken Sie dann Enter

es ist auch einfach, eine Funktion zu tun, es zu schreiben.

2

Wenn Sie beim Einfügen eine visuelle Auswahl haben, wird die Auswahl nach dem Einfügen in den Standardpuffer eingefügt. So würden Sie tun 23Gdd51GVp23GP

+9

... Was eigentlich kein schlechtes Passwort wäre ... – Kevin

+0

Du meinst 23G ... 51G ...? – Kent

+0

Ja, G, behoben. Ich benutze normalerweise: 23 aber das ist einfacher zu zeigen – Kevin

2

Benutzer move Befehl, Zeilen zu verschieben. zB Swap-Linie 23 und Linie 52:

:23m52 | 52m23 

Typ :help move Hilfe Nutzung von move zu bekommen, kann es eine Reihe von Linien :-)

5

Mein LineJuggler plugin hat normaler und visueller Modus Mappings ]E und [E bewegen (und andere, ähnlich dem populären unvermindert Plugin), um die aktuelle Zeile/Auswahl mit [count] Zeilen unter/über zu tauschen.

Ich denke, ein :[range]Swap {range} Befehl wäre auch hilfreich; Ich arbeite daran.

Bearbeiten: Hier ist es: LineJugglerCommands plugin.