Angenommen, ich habe einen Textblock wie diesen:
// Kommentar1 // Kommentar2 // Kommentar3
Und ich möchte jede dieser Zeilen an das Ende von 3 entsprechenden Codezeilen anhängen:
foo = 1; bar = 2; Baz = 3;
Damit ist das Endergebnis
foo = 1; // Kommentar1 bar = 2; // Kommentar2 Baz = 3; // Kommentar3
Gibt es eine einfache Möglichkeit, dies in Vim zu tun?
Antworten:
Verwenden Sie den visuellen Blockmodus ( Ctrl+ v), um eine Reihe von Zeilen auszuwählen, dann entweder yoder dsie.
Dann, wenn Sie die foo ausgewählt, bar, baz Linien wieder visuelle Block - Modus verwenden , um die erste Spalte der Kommentarzeilen zu markieren , und dann Shift+ psie in Platz (oder , wenn Sie die Kommentarzeilen ausgewählt, wählen Sie die letzte Spalte der foo bar baz Linien und psie an Ort und Stelle.
Das Erlernen der Positionierung kann ein wenig Übung erfordern, aber wenn Sie den Dreh raus haben, fliegen Sie. Wenn Sie einen Block ausgewählt haben, können Sie auch Shift+ verwenden A, um z. B. Leerzeichen an den Block anzuhängen (beim Anhängen wird der neue Text nur in der obersten Zeile angezeigt, aber wenn Sie Esc drücken, wird er auf magische Weise in allen ausgewählten Zeilen angezeigt). . In ähnlicher Weise macht Shift+ idasselbe am Anfang des ausgewählten Blocks in jeder Zeile.
Sie müssen die leeren Zeilen danach jedoch bereinigen.
Es gibt auch eine großartige Vimcasts-Episode , in der diese Techniken detaillierter gezeigt werden.
quelle
:set ve=all
sehr vielseitig. Ich persönlich benutze das UnconditionalPaste-Plugin ( vim.org/scripts/script.php?script_id=3355 ), da es meinen Bedürfnissen etwas besser entspricht.Nun, ob es einfach ist oder nicht, sagst du es mir. Navigiere zu
// Comment 1
, drückedd
zum Löschen. Navigieren Sie mit zu der Zeilefoo = 1;
und drücken Siep
, um sie unter der Zeile einzufügen. Bewegen Sie sich zufoo
und drücken SieJ
, um sich der Reihe anzuschließen. Tada.quelle
Folgendes wird genau das tun, was Sie beschreiben:
Je nachdem , was Sie tatsächlich getan brauchen (wie zum Beispiel im Gegensatz), in der Praxis könnte es einfacher zu sein , den „// Comment1“ usw. Block (Block-Auswahl Ctrlv), Ruck ( y) gehen, bis zum Ende des Codes blockieren und einfügen.
quelle