J'ai un fichier texte. On m'a dit de le faire UTF8. Comment puis-je faire ça avec Vim?
J'ai un fichier texte. On m'a dit de le faire UTF8. Comment puis-je faire ça avec Vim?
Réponses:
Si vous éditez un fichier encodé en latin1, vous constaterez que 'fileencoding' pour ce tampon est réglé sur latin1. Vous devrez donc définir manuellement le codage du fichier avant d'enregistrer le fichier.
:set fileencoding=utf8
:w myfilename
Notez également que les fichiers UTF8 commencent souvent par une marque d'ordre d'octet (BOM) qui indique l'endianness. La nomenclature est facultative mais certains programmes l'utilisent exclusivement pour déterminer le codage du fichier. Sous certaines conditions, Vim écrira la nomenclature, mais parfois non. Pour définir explicitement la nomenclature, procédez comme suit:
:set bomb
Pour plus d'informations :help mbyte-options
et :help utf8
et :help bomb
.
set fileencoding=utf-8
nouveau à l'avant. Vim ne remarque même pas la nomenclature si vous lui avez dit d'en écrire une (et il l'écrit effectivement). Pour faire fonctionner utf-8, vous en avez besoin ou set encoding=utf-8
dans vos paramètres de démarrage. Au moins, c'est l'histoire de mon système.
:w ++enc=utf-8 %
pour écrire le fichier en encodage utf-8 sur le disque.
fileencoding
, le :w ++enc=utf-8
est valide une fois, mais la prochaine fois que vous exécutez :w
, la valeur de 'fileencoding'
sera utilisée, et si vous ne l'avez pas modifiée (explicitement lors de l'édition, ou en rechargeant le fichier, en espérant qui 'fencs'
est réglé de manière appropriée et le codage réel est bien détectée), l'ancien encodage reviendra.
fileencoding
est également une réponse valable à la question, ce qui ne conduit pas l'OMI à prendre de mauvaises habitudes. Mais d'accord, c'est juste une question d'humeur, je suppose.