Vim mostra ^ M símbolos e eles não estão desaparecendo

1

Eu uso o Vim 7.3 no Windows 7 e tive um problema. Símbolos ^M não estão desaparecendo apesar de todos os meus esforços, :e ++ff=dos não ajuda.

Alguma sugestão?

    
por OlegG 13.09.2012 / 13:23

2 respostas

2

^ M geralmente aparece quando o arquivo é inconsistente com relação aos terminadores de linha usados. Tente o seguinte:

  • Crie testfile usando vim com algumas linhas aleatórias e escreva no modo dos.
  • Em seguida, execute (espere que você tenha o cygwin instalado):

     sed '2s/.$//' testfile > corruptfile
    

    Isso removerá o último caractere da segunda linha, criando uma inconsistência nos terminadores de linha usados.

  • Abra corruptfile com vim. ^ M símbolos aparecerão para que você esteja ciente da inconsistência.

Na vida real, programas que foram escritos com um único tipo de terminador de linha em mente podem produzir tais inconsistências. Embora essas inconsistências pareçam inocentes, elas podem causar problemas em outros programas. Por exemplo. O subversion não permite que arquivos com terminadores de linha inconsistentes sejam adicionados a um repositório. Outros programas podem falhar silenciosamente.

Para fazer com que o M desaparece, basta fazer uma substituição global:

:% s/^M//g

O ^M é produzido pressionando: Ctrl+v <Enter>

Em seguida, escreva o arquivo no formato desejado:

:set ff=dos
:w
    
por 13.09.2012 / 13:28
1

O caractere que o vim exibe como ^ M é CR (retorno de carro, caractere ASCII 13). O Windows usa CR e LF (nova linha, caractere ASCII 10) para codificar as quebras de linha nos arquivos de texto. O Linux / Unix usa apenas LF para codificar quebras de linha e o Mac OS usa apenas CR .

Se você abrir um arquivo de texto criado em um computador Windows em uma caixa Linux, poderá ver caracteres CR finais em cada linha. Existem várias maneiras de removê-los. Uma delas é substituí-las no vim como m000 sugerido, outra seria para recode do arquivo:

recode ibmpc..latin1 SOME.TXT
    
por 13.09.2012 / 13:45

Tags