Publicado por: aaa | fevereiro 13, 2010

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 ,mt que acabamos de criar e nos livraremos dos malditos ^M.

Um abraço a todos,

César Frias.


Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Sair / Alterar )

Imagem do Twitter

You are commenting using your Twitter account. Sair / Alterar )

Foto do Facebook

You are commenting using your Facebook account. Sair / Alterar )

Connecting to %s

Categorias

Seguir

Obtenha todo post novo entregue na sua caixa de entrada.