Utilizando o editor de textos
vi é comum acharmos no final das linhas de alguns arquivos os caracteres ^M, isso acontece pois no DOS/Windows o <enter> é representado por 2 caracteres (retorno de cursor e quebra de linha) enquanto no
Linux ele é representado apenas pela quebra de linha.
Pois bem, se nós usarmos o comando "<Esc>+/^M" (sem as aspas) o vi irá procurar por linhas que comecem com a letra M, pois isso é uma expressão regular e o caractere "^" representa início de linha.
A forma correta a se usar seria a seguinte "<Esc>+/<Ctrl>V<Ctrl>M", assim iremos achar todos os ^M que desejamos no final das linhas.
Porém o nosso objetivo aqui não é simplesmente achar os ^M e sim retirá-los e de quebra adicionarmos um mapeamento no arquivo .vimrc, portanto iremos usar o seguinte comando "
<Esc>:%s/\r//g", assim iremos substituir todas as ocorrências do ^M até o final do arquivo.
Apenas substituí <Ctrl>V<Ctrl>M pelo \r, pois eles representam a mesma coisa.
Adicionando agora o mapeamento ao .vimrc:
Basta abrir o arquivo .vimrc (se ele não existir, crie-o) para edição e adicionar ao final dele essas 2 linhas:
" TiraM: Mapeamento para tirar os ^M do final das linhas
map ,tm :%s/\r//g
A primeira linha é apenas um comentário representado pelo " no início dela, já a segunda é a que realmente nos interessa, é ela que faz a "mágica".
Sempre que nos depararmos agora com algum arquivo cheio de ^M no final das linhas, basta pressionarmos "<Esc>,tm", assim chamaremos o mapeamento ",tm" que acabamos de criar e nos livraremos dos malditos ^M.
Um abraço a todos,
César Frias.
Boa noite João,
o seu comando também funciona, pois ctrl+v ctrl+m representa o ^M que queremos e no ínicio dele você diz que
quer substituir desde a linha 1 até o final do arquivo ( o que pode ser substituído por %) :D
Porém aqui na dica eu adicionei um mapeamento no .vimrc, para que ao digitar ,tm ele retire automaticamente os ^M.
Espero que a dica tenha sido útil :)
Abraços
César Frias