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?
Dois-je également définir le codage de fichier avec set
ou setglobal
?
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?
Dois-je également définir le codage de fichier avec set
ou setglobal
?
Réponses:
Dans le premier cas avec
set encoding=utf-8
, vous allez modifier l'encodage de sortie affiché dans le terminal.Dans le second cas
set fileencoding=utf-8
, vous modifierez l'encodage de sortie du fichier qui est écrit .
Comme indiqué par @Dennis, vous pouvez les définir tous les deux dans votre ~ / .vimrc si vous souhaitez toujours travailler utf-8
.
Depuis le wiki de VIM sur l'utilisation de l'Unicode
" encoding
définit comment vim doit représenter les caractères en interne . Utf-8 est nécessaire pour la plupart des versions d'Unicode."
" fileencoding
définit l' encodage pour un fichier particulier (local vers buffer);: setglobal définit la valeur par défaut. Une valeur vide peut également être utilisée: elle est par défaut identique à 'encoding'. Ou vous pouvez définir l'un des encodages ucs, Cela peut rendre le même fichier disque plus gros ou plus petit en fonction de votre combinaison particulière de caractères. De plus, IIUC, utf-8 est toujours big-endian (le bit fort en premier) tandis que ucs peut être big-endian ou little-endian, donc si vous utilisez-le, vous aurez probablement besoin de définir "bombe" (voir ci-dessous). "
vim -c "set encoding=utf-8" file.ext
.
Vous pouvez définir la variable 'fileencodings' dans votre .vimrc.
Il s'agit d'une liste d'encodages de caractères pris en compte lors du démarrage de la modification d'un fichier existant. Lorsqu'un fichier est lu, Vim essaie d'utiliser le premier encodage de caractères mentionné. Si une erreur est détectée, la suivante de la liste est essayée. Lorsqu'un encodage fonctionne, 'fileencoding' est défini sur celui-ci. Si tout échoue, 'fileencoding' est défini sur 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