como entender \ n no vim

3

Eu tenho um arquivo de texto com o seguinte conteúdo:

elephant

rhino

giraffe

/* animals who live in Africa */

Eu gostaria de adicionar o caractere # no final de cada animal. Eu posso fazer isso com :%s/\n\n/#\r\r/g no vim. No entanto, no começo eu tentei com :%s/\n\n/#\n\n/g e acabei com:

elephant#^@^@rhino#^@^@giraffe#^@^@/* animals who live in Africa */

Por que o vim se comporta assim? Como entender \n no vim?

    
por Martin 17.07.2016 / 05:04

1 resposta

6

No lado da substituição do vim, uma nova linha é representada por \r . Assim, tente:

%s/\n\n/#\r\r/g

O arquivo resultante será parecido com:

elephant#

rhino# 

giraffe#

/* animals who live in Africa */

Na primeira metade de um comando substituto, \n é uma nova linha e \r é um retorno de carro. Por outro lado, no lado de substituição do comando, \n é um caractere NUL (hex 00) e \r é uma nova linha.

    
por 17.07.2016 / 05:09

Tags