122 votes

Définir l'encodage et le fileencoding à utf-8 dans Vim

Quelle est la différence entre ces deux commandes ?

  • set encoding=utf-8
  • set fileencoding=utf-8

Dois-je définir les deux lorsque je veux utiliser utf-8 ?

De même, dois-je définir le codage des fichiers avec la commande set o setglobal ?

119voto

Adrien Lacroix Points 1105

TL;DR

Dans le premier cas avec set encoding=utf-8 vous changerez l'encodage de sortie qui est présenté sur dans le terminal.

Dans le second cas, avec set fileencoding=utf-8 vous changerez l'encodage de sortie du fichier qui est écrit sur .

Comme indiqué par @Dennis, vous pouvez les définir tous les deux dans votre ~/.vimrc si vous voulez toujours travailler en format utf-8 .

Plus de détails

De la wiki du VIM sur le travail avec l'unicode

" encoding définit comment vim doit représenter les caractères de façon interne . Utf-8 est nécessaire pour la plupart des saveurs d'Unicode".

" fileencoding définit le encodage pour un fichier particulier (local au tampon) ; :setglobal définit la valeur par défaut. Une valeur vide peut également être utilisée : elle prend par défaut la même valeur que 'encoding'. Vous pouvez aussi choisir l'un des encodages ucs, ce qui peut rendre le même fichier disque plus ou moins gros en fonction de votre mélange particulier de caractères. De plus, IIUC, utf-8 est toujours big-endian (le bit le plus élevé en premier) alors que ucs peut être big-endian ou little-endian, donc si vous l'utilisez, vous aurez probablement besoin de définir "bomb" (voir plus bas).

97voto

Dennis Points 5020
set encoding=utf-8  " The encoding displayed.
set fileencoding=utf-8  " The encoding written to file.

Vous pouvez tout aussi bien définir les deux dans votre ~/.vimrc si vous voulez toujours travailler avec utf-8.

3voto

Mike11 Points 11

Vous pouvez définir la variable "fileencodings" dans votre fichier .vimrc.

Il s'agit d'une liste de codages de caractères pris en compte lorsque l'on commence à éditer un fichier existant. Lors de la lecture d'un fichier, Vim essaie d'utiliser le premier mentionné. Si une erreur est détectée, le suivant de la liste est essayé. Lorsqu'un encodage qui fonctionne est trouvé, 'fileencoding' est défini sur celui-ci. Si tous les essais échouent, la valeur de 'fileencoding' est fixée à une chaîne vide, ce qui signifie que la valeur de 'encoding' est utilisée.

Voir :help filencodings

Si vous travaillez souvent avec, par exemple, cp1252, vous pouvez l'ajouter ici :

set fileencodings=ucs-bom,utf-8,cp1252,default,latin9

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X