Wie in mehreren Zeilen ersetzen?

10

Ich möchte ein Wort in mehrere Zeilen einfügen, gibt es einen Befehl wie

:[2,3,5,7,11]s/^/word\ /g

was würde wordam Anfang von Zeile 2, Zeile 3, Zeile 5, Zeile 7 und Zeile 11 einfügen ?

Hier sind mehrere Zeilen nicht zusammenhängend.

user3813057
quelle

Antworten:

16

Das Durchführen einer Substitution in mehreren aufeinanderfolgenden Zeilen ist ziemlich einfach:

:2,11s/^/word /

Ein Bereich kann jedoch keine nicht aufeinander folgenden Zeilen abdecken.

Mit ein wenig Kreativität ist es jedoch durchaus möglich, diese "Einschränkung" zu umgehen.

In der Tat können Sie die letzte Ersetzung mit :&oder wiederholen :&&(die erstere behält die ursprünglichen Flags nicht bei, die letztere), so dass Sie die Ersetzungen ziemlich einfach verketten können:

2s/^/word /|3&|5&|7&|11&

Sehen :help :&und scrollen Sie nach :&&.

romainl
quelle