Além de usar uma macro, você também pode usar localizar e substituir
yy2p
:%s/\v\d+/\=line('.')/g
-
yy2p
yanks a linha e passado duas vezes -
:%s
processa uma pesquisa e substitui -
\v\d+
procura por todos os caracteres numéricos -
\=line('.')
avalia a função de linha como substituto de todas as correspondências
ainda outra opção é
:pu! =map(range(1,3), 'printf(''a + %d =b and a+%d=c'', v:val, v:val)')
difícil de lembrar, mas você não tem que arrancar, pesquisar ou qualquer coisa macro. Começando com um buffer vazio, você obtém toda a enchilada em um comando.