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.