Além de usar uma macro, você também pode usar localizar e substituir
yy2p
:%s/\v\d+/\=line('.')/g
-
yy2pyanks a linha e passado duas vezes -
:%sprocessa 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.