Ho un file di testo. Mi è stato detto di renderlo UTF8. Come posso farlo con Vim?
Ho un file di testo. Mi è stato detto di renderlo UTF8. Come posso farlo con Vim?
Risposte:
Se stai modificando un file codificato come latin1, troverai che 'fileencoding' per quel buffer è impostato su latin1. Quindi sarà necessario impostare manualmente la codifica del file prima di salvare il file.
:set fileencoding=utf8
:w myfilename
Si noti inoltre che i file UTF8 spesso iniziano con un Byte Order Mark (BOM) che indica endianness. La distinta componenti è opzionale ma alcuni programmi la utilizzano esclusivamente per determinare la codifica del file. In certe condizioni Vim scriverà la BOM ma a volte no. Per impostare esplicitamente la distinta materiali, procedere come segue:
:set bomb
Per ulteriori informazioni :help mbyte-options
e :help utf8
e :help bomb
.
set fileencoding=utf-8
nuovo in primo piano. Vim non si accorge nemmeno del BOM se gli hai detto di scriverne uno (e lo scrive effettivamente). Per far funzionare utf-8, è necessario quello o set encoding=utf-8
nelle impostazioni di avvio. Almeno, questa è la storia sul mio sistema.
:w ++enc=utf-8 %
per scrivere il file nella codifica utf-8 su disco.
fileencoding
, :w ++enc=utf-8
è valido una volta, ma la prossima volta che si esegue verrà utilizzato :w
il valore di 'fileencoding'
e se non lo si è modificato (esplicitamente durante la modifica o ricaricando il file, sperando che 'fencs'
è impostato in modo appropriato e la codifica effettiva è ben rilevata), la vecchia codifica tornerà.
fileencoding
è anche una valida risposta alla domanda, che non secondo IMO porta ad assumere cattive abitudini. Ma OK, suppongo sia solo una questione di umore.