Альтернатива: глобальная команда.
Глобальные команды действуют на весь файл и выполняют действие (Ex) для каждой строки, соответствующей шаблону.Это вдохновение для grep
(:global/re/print
) и напоминает awk
, если вы щурились.
Наше действие заключается в том, чтобы вставить два пробела, которые семантически менее хорошо воспринимаются substitute
в моем мозгу.
Поскольку нам нужна команда Ex, мы используем :normal!
для выполнения обычной команды без применения сопоставлений, а затем просто I
вставляем два пробела в начале строки.
(я скопировал и отредактировал образец из N ответа Сарджа )
:global ~</\?[Ww]ord~ normal! I
Обратите внимание на два пробела после I
.
Здесь я использовал ~
в качестве разделителя шаблонов, потому что подойдет любой символ, а не использование стандартного /
означало, что мне не нужно было избегать его в шаблоне.
Мы все еще должны экранировать ?
, чтобы получить специальное значение «ноль или один» (в отличие от совпадения с литералом ?
).