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.