Como meu arquivo de texto pode ser preenchido com ^ M caracteres de repente?

1

Eu tenho um arquivo de texto em uma máquina Mac, e eu só usei o vi / vim para editá-lo. Hoje, quando abri com o vi, notei um monte de ^M caracteres em todos os lugares. A única coisa que fiz hoje foi redirecionar um echo "some text" >> file.txt para ele anteriormente, mas não consegui reproduzir isso em um arquivo diferente.

O que fez todos esses ^M caracteres aparecerem de repente?

    
por Tan Wang 29.02.2016 / 01:10

1 resposta

1

Esta é uma resposta parcial, já que isso é hipotético, e o questionador não acha que eles fizeram o seguinte.

Como mencionado no comentários por Ralph Rönnquist , "O Mac usa ^M no final da linha, o Windows usa ^M^J e o Unix usa ^J ". O Vim pode lidar com todos os três formatos. Por exemplo, você pode criar um novo arquivo e especificar o que usar ao salvar, com (por exemplo) :set ff=mac .

Se você abrir um arquivo com o vim, ele poderá determinar automaticamente a codificação e exibir novas linhas adequadamente. No entanto, o vim só considerará formatos conforme especificado em fileformats . Portanto, se fileformats=unix,dos , o vim nunca considerará abrir o arquivo como um formato Mac. Portanto, se você criou um arquivo no Mac vim (ou seja, com novas linhas do Mac), em seguida, abriu o arquivo no Linux vim (ou seja, com fileformats=unix,dos ), você veria ^M em vez de novas linhas. É concebível que você tenha processado o arquivo inteiro no Mac após a criação.

Outro ponto a considerar se você puder ter um arquivo criado em um formato e, em seguida, anexar ao arquivo com echo foo >> filename . Se o formato original for Mac e você acrescentar no Linux, o arquivo conterá uma mistura de formatos. Assumindo que fileformats é definido livremente (por exemplo, fileformats=unix,dos,mac , vim parece selecionar o formato Mac nesse caso.

    
por 03.03.2016 / 14:21