Définir l’encodage et l’encodage de fichiers sur 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 quand je veux utiliser utf-8?

Dois-je également définir un encodage de fichier avec set ou setglobal ?

TL; DR

Dans le premier cas avec set encoding=utf-8 , vous allez modifier le codage de sortie affiché dans le terminal.

Dans le second cas, avec set fileencoding=utf-8 , vous allez modifier l’encodage de sortie du fichier écrit .

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

Plus de détails

Depuis le wiki de VIM sur le travail avec unicode

encoding définit comment vim doit représenter les caractères en interne . Utf-8 est nécessaire pour la plupart des variantes de Unicode.”

fileencoding définit l’ encodage pour un fichier particulier (local sur buffer); setglobal définit la valeur par défaut. Une valeur vide peut également être utilisée: elle est identique à celle de ‘encoding’. Vous pouvez également définir l’un des encodages ucs Cela peut rendre le même fichier de disque plus grand ou plus petit en fonction de votre mélange de caractères.En outre, IIUC, utf-8 est toujours big-endian (bit haut en premier) alors que les ucs peuvent être big-endian ou little-endian, vous l’utilisez, vous devrez probablement définir «bombe» (voir ci-dessous). “

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

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