Подтвердить что ты не робот

VI Регулярные выражения - Замена с использованием текущего номера строки

Я не уверен, что это возможно или нет, но одна из вещей, которые мне кажутся мне необходимыми, - это заменить содержимое файла, но я хочу использовать текущий номер строки в качестве опции замены. Так что если бы у меня был файл вроде:

This is text to replace XX 
This is text to replace XX 
This is text to replace XX

Я хотел бы иметь возможность запускать регулярное выражение, которое превратило бы этот файл в:

This is text to replace 1
This is text to replace 2
This is text to replace 3

Я огляделся, но я не могу найти способ сделать это. Это возможно? Кто-нибудь знает простой способ приблизиться к этому?

Спасибо.

4b9b3361

Ответ 1

:help sub-replace-expression

Вы можете построить выражение replace, например:

:[email protected] [email protected]\=" " . line(".")@

... Что работает для меня.

Ответ 2

Это намного проще, подход

:%s/dummy/\=printf("dummy%d", line('.'))

Приведенное выше регулярное выражение в vi добавляет номер строки к каждому фиктивному слову:

С

dummy
dummy
dummy

To:

dummy1
dummy2
dummy3