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.

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 :&&.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.