Created on 17 Sep 2012 ; Modified on 10 Jan 2013
Parliamo del formato dei file di testo. Mi chiederete: "Ma di quale formato vai parlando? Nei file di testo non c'è formato."
E' vero. Nei file di testo non c'è formato.
Ma anche nei file di testo c'è un modo per dire: fine linea, vai a capo
.
Come spesso succede, se esiste una convenzione, la si implementa in modo diverso in ogni sistema che la deve interpretare. Per questo motivo il fine linea, vai a capo
vale:
CR+LF
;LF
;CR
.Quando si deve modificare in un computer un file di testo ottenuto da un diverso sistema operativo, si può capire che vi possono essere (e normalmente vi sono) problemi.
Se poi abbiamo a che fare con un grosso file di testo in cui i fine linea sono misti, ad esempio alcune linee si chiudono con CR+LF
e altre con il solo LF
, allora portarsi ad una situazione omogenea, può richiedere un certo sforzo.
Un buon editore di testi permette di convertire i fine linea. E, naturalmente, Vim è un buon editor di testi.
In particolare, è comodo utilizzare il comando:
:set fileformat=formato
che indica a Vim di leggere il file considerando il solo formato indicato. Formato può essere:
unix
dos
mac
Ad esempio, lavorando con un PC Windows, se si apre con Vim un file con fine linea misti, alcuni CR+LF
e altri con il solo LF
, vedremo dei ^M
quà e là. Perché Vim, caricando il file lo interpreta come file Unix (solo LF
, e quindi prende CR
come un carattere da visualizzare; guarda caso CR
è detto anche Control+M
ovvero visualizzato ^M
).
Con il comando
:set fileformat=dos
diciamo a Vim di leggere con fine linea CR+LF
. I fine linea orfani composti dal solo LF
sono comunque validi, e correttamente interpretati.
A questo punto un comando di scrittura salverà il file con tutti i fine linea a CR+LF
:
:w
Per chi conosce l'inglese, ed è interessato, può trovare una trattazione dettagliata in: Vim Tips Wiki: file format.