Da pergunta Como substituir um caractere por uma nova linha no Vim? . Você precisa usar \ r ao substituir o texto por uma nova linha, como esta
:%s/%/\r/g
Mas, ao substituir o final das linhas e as novas linhas de um personagem, você pode fazer o seguinte:
:%s/\n/%/g
Que seção do manual documenta esses comportamentos e qual o motivo por trás deles?
%
ao pesquisar e substituir?:s
, aplicará apenas a substituição na linha atual.:%s
torna o endereço do arquivo inteiro. Mais .Respostas:
Dos documentos do vim sobre padrões :
fonte
Em http://vim.wikia.com/wiki/Search_and_replace :
fonte
:h :s%
, especialmente o último parágrafo. (via:h :s
)Outro aspecto disso é que
\0
, tradicionalmente NULL,s//\0/
entende-se "todo o padrão correspondente". (Que, a propósito, é redundante e mais longo que&
).\0
para significarNULL
, então você usa\n
\n
querer dizer\n
, então você usa\r
.\r
querer dizer isso\r
, mas eu não sei quem gostaria de adicionar esse caractere de propósito.☈
fonte
\n
diferentes significados na pesquisa e na substituição de padrões. Resposta fantástica.:help NL-used-for-Nul
fonte
Primeiro, abra
:h :s
para ver a seção "4.2 Substituto" da documentação em "Alterar". Aqui está o que o comando aceita:Observe a descrição sobre
pattern
estring
Então agora você sabe que o padrão de pesquisa e os padrões de substituição seguem regras diferentes. Se você seguir o link para
|pattern|
, ele o levará à seção que explica todos os padrões de regexp usados no Vim.Entretanto,
|sub-replace-special|
leva você à subseção de "4.2 Substituto", que contém os padrões de substituição, entre os quais\r
a quebra / divisão de linha.(O atalho para esta parte do manual é
:h :s%
)fonte