
Quando abro o Vim no meu laptop e executo o regex assim:
:%s/foo/\n/g
vim insere ^@ em vez de quebras de linha.
Esse problema começou a acontecer na semana passada. Estou executando o Ubuntu 18.04.04. Acho que o problema pode ter começado depois que o Ubuntu instalou as atualizações.
Coisas que eu tentei
codificação e codificação de arquivos
Tentei definir a codificação e a codificação do arquivo para utf-8 e depois para latin1, mas isso não fez diferença.
:lang
:lang produz "Idioma atual: "LC_CTYPE=en_US.UTF-8;LC_NUMERIC=C;LC_TIME=es_ES.UTF-8;LC_COLLATE=en_US.UTF-8;LC_MONETARY=es_ES.UTF-8;LC_MESSAGES=en_US.UTF- 8;LC_PAPER=es_ES.UTF-8;LC_NAME=es_ES.UTF-8;LC_ADDRESS=es_ES.UTF-8;LC_TELEPHONE=es_ES.UTF-8;LC_MEASUREMENT=es_ES.UTF-8;LC_IDENTIFICATION=es_ES.UTF-8 "
Se eu ligar para o vim com
LC_ALL=C vim foo
então não faz diferença, o problema ainda ocorre.
Responder1
\n no vim para substituição não significa nova linha, mas nulo.
Use\r em vez disso. Por exemplo
:%s/foo/\r/g