Inserte una línea de texto antes de las líneas que coincidan con una expresión regular en vim

Inserte una línea de texto antes de las líneas que coincidan con una expresión regular en vim

Estoy intentando agregar una columna a una tabla HTML usando vim, por lo que necesito agregar un par de <td>etiquetas en la línea antes de cada una </tr>. hasta ahora tengo

:186,$s/ <\/tr>/<td><\/td> \n <\/tr>/g
pero vim muestra ^@en lugar de crear una nueva línea para la etiqueta tr de cierre. ¿Hay alguna forma de evitarlo?

Respuesta1

Sí, es necesario utilizar \ren lugar \nde la pieza de repuesto, una peculiaridad del comando de Vim :s. Y puede simplificar aún más el comando usando un separador diferente, por ejemplo #, y haciendo referencia a la coincidencia mediante &:

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

información relacionada