Wie kann man in Vim mehrere Zeilen in verschiedenen Bereichen ziehen oder löschen?

0

Ich habe einige Fragen zum Ruckeln und Löschen einer Reihe von Zeilen in Vim gesehen, z. B. von Zeile 5 bis Zeile 10.

Ich habe jedoch (in der Dokumentation und beim Googeln) nicht herausgefunden, wie man in einem einzigen Befehl, z. B. den Zeilen 3, 5, 10 und 12, ruckelt / löscht.

Ist das möglich?

user35477
quelle
Dies wurde auf SO gefragt und beantwortet: stackoverflow.com/questions/1608204/multiple-selections-in-vim
benjifisher

Antworten:

2

Das ist möglich, aber nicht einfach. Vim unterstützt nicht mehrere Bereiche oder mehrere nicht benachbarte Zeilennummern. Sehen

:help 10.3
:help :range

Sie können jedoch die Zeilen angeben, die im Muster eines :gBefehls gezogen werden sollen, indem Sie das Zeilennummernatom verwenden. Sehen

:help :g
:help /\%l

Im Fall Ihres Beispiels würde das Folgende diese Zeilen in das aRegister ziehen.

:g/\%3l\|\%5l\|\%10l\|\%12l/y A
garyjohn
quelle
2
Damit dies wie beabsichtigt funktioniert, muss das 'a'-Register leer sein. Eine einfache Möglichkeit, dies zu tun, besteht darin, ein leeres Makro aufzuzeichnen, indem Sie qaqim normalen Modus auf drücken .
Ben