Linux slogan
Visite também: Segurança Linux · BR-Linux.org · Dicas-L · Doode · NoticiasLinux · SoftwareLivre.org · UnderLinux



» Screenshot
Linux: PCLinuxOS 2012 LXDE
Por pinduvoz
» Login
Login:
Senha:

Se você ainda não possui uma conta, clique aqui.

Esqueci minha senha


Dica

Removendo ^M do VI
Linux user
Publicado por César Frias em 20/02/2010

Login: btc_cesar, 7662 pontos
[ Hits: 3909 ]

Removendo ^M do VI

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.


Outras dicas deste autor
Nenhuma dica encontrada.

Leitura recomendada
   Dica Linux recomendada Wicd - excelente aplicativo para configuração de WiFi e rede
   Dica Linux recomendada Baixando músicas com o gSharkDown
   Dica Linux recomendada Mplayer no Fedora Core
   Dica Linux recomendada Captura de tela com Gimp
   Dica Linux recomendada KBibTex - Referências bibliográficas em LaTeX

Comentários
[1] Comentário enviado por Tulio Hoffimann em 20/02/2010 - 17:38h:

.

[2] Comentário enviado por enzo em 21/02/2010 - 21:58h:

Cesar


O VI também tem um outra opção:

<ESC> :set fileformat=unix

isto muda o arquivo para o formato unix,

Caso você queira um arquivo com o formato DOS basta executar:

<ESC> :set fileformat=dos

Espero ter contribuído.


Enzo

[3] Comentário enviado por joaomarcoslemos em 30/08/2011 - 12:13h:

consegui arrumar o arquivo da seguinte forma:

:1,$ s/^M/\r/g

onde ^M digitei ctrl+v ctrl+m

[]s

Joao

[4] Comentário enviado por btc_cesar em 30/08/2011 - 22:18h:

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


Contribuir com comentário


  
Para executar esta ação você precisa estar logado no site, caso contrário, tudo o que for digitado será perdido.
Responsável pelo site: Fábio Berbert de Paula - Conteúdo distribuído sob licença GNU FDL
Site hospedado por:

Viva o Linux

A maior comunidade Linux da América Latina! Artigos, dicas, tutoriais, fórum, scripts e muito mais. Ideal para quem busca auto-ajuda em Linux.