Как заменить в несколько строк?

10

Я хотел бы вставить слово в несколько строк, есть ли такая команда, как

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

что вставит wordв начало строки 2, строки 3, строки 5, строки 7 и строки 11?

Здесь несколько строк не являются смежными.

user3813057
источник

Ответы:

16

Выполнить замену в нескольких последовательных строках довольно просто:

:2,11s/^/word /

но диапазон не может охватывать непоследовательные строки.

Однако, проявив немного творческого подхода, вполне возможно обойти это «ограничение».

В самом деле, вы можете повторить последнюю замену с помощью :&или :&&(первая не сохранит исходные флаги, а вторая сохранит), так что вы можете довольно легко объединить замены:

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

Смотрите :help :&и прокручивайте :&&.

romainl
источник