Insira uma linha de texto antes das linhas que correspondem a uma regex no vim

Insira uma linha de texto antes das linhas que correspondem a uma regex no vim

Estou tentando adicionar uma coluna a uma tabela HTML usando o vim, então preciso adicionar um par de <td>tags na linha antes de cada um </tr>. Até agora eu tenho

:186,$s/ <\/tr>/<td><\/td> \n <\/tr>/g
mas o vim mostra ^@em vez de criar uma nova linha para a tag tr de fechamento. Existe alguma maneira de contornar isso?

Responder1

Sim, você precisa usar, \rem vez \nda peça de reposição, uma peculiaridade do :scomando do Vim. E você pode simplificar ainda mais o comando usando um separador diferente, por exemplo #, e referindo-se à correspondência via &:

:186,$s# </tr>#<td></td> \r&#g

informação relacionada