Insira uma linha de texto antes das linhas correspondentes a uma expressão regular no vim

2

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 </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?

    
por Yitzchak 10.07.2014 / 17:14

1 resposta

4

Sim, você precisa usar \r em vez de \n na peça de substituição, uma peculiaridade do comando :s do Vim. E você pode simplificar ainda mais o comando usando um separador diferente, por ex. # e consultando a correspondência via & :

:186,$s# </tr>#<td></td> \r&#g
    
por 10.07.2014 / 17:20

Tags