Notez qu'il est plus sûr de définir l'encodage dans votre LOCALE au lieu de le forcer dans Vim, au cas où vous modifieriez un fichier non-unicode. Vous obtiendrez le même résultat que celui par défaut de LOCALE et vous ne gâcherez aucun personnage étranger s'il est rencontré.
timss
Réponses:
89
TL; DR
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.
" encodingdéfinit comment vim doit représenter les caractères en interne . Utf-8 est nécessaire pour la plupart des versions d'Unicode."
" fileencodingdé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). "
Désolé je ne comprends pas. Que fait le codage de fichiers plus exactement?
Kiraly Zoltan
25
Dans le premier cas, vous allez modifier l'encodage de sortie affiché dans le terminal. Dans le second cas, vous modifierez l'encodage de sortie du fichier écrit.
Adrien Lacroix
1
+1 Pour une réponse courte et douce, au lieu de simplement répéter la documentation officielle! :)
425nesp
Si nécessaire ad-hoc directement à partir de la ligne de commande vim -c "set encoding=utf-8" file.ext.
Hans Ginzel
87
set encoding=utf-8 " The encoding displayed.
set fileencoding=utf-8 " The encoding written to file.
Vous pouvez également définir les deux dans votre ~/.vimrcsi vous souhaitez toujours travailler avec utf-8.
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
Réponses:
TL; DR
Comme indiqué par @Dennis, vous pouvez les définir tous les deux dans votre ~ / .vimrc si vous souhaitez toujours travailler
utf-8
.Plus de détails
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). "la source
vim -c "set encoding=utf-8" file.ext
.Vous pouvez également définir les deux dans votre
~/.vimrc
si vous souhaitez toujours travailler avec utf-8.la source
Vous pouvez définir la variable 'fileencodings' dans votre .vimrc.
Voir
:help filencodings
Si vous travaillez souvent avec par exemple cp1252, vous pouvez l'ajouter ici:
la source