Je travaille de temps en temps sur des pages Web impliquant des scripts non anglais, la plupart d'entre eux utilisent le jeu de caractères utf-8, VIM et Gvim n'affiche pas correctement les caractères UTF-8.
Utilisation de VIM 7.3.46 sur Windows 7 64 bits, avec set guifont=Monaco:h10
dans _vimrc
Y'a t'il un moyen d'arranger cela?
Mise à jour: J'ai cherché sur Google et trouvé des set guifontwide
actes comme deuxième solution de secours pour les langues régionales.
J'ai ajouté les lignes suivantes dans _vimrc et la plupart de mes problèmes ont été résolus.
set enc=utf-8
set fileencoding=utf-8
set fileencodings=ucs-bom,utf8,prc
set guifont=Monaco:h11
set guifontwide=NSimsun:h12
La police ci - dessus NSimsun fonctionne pour le chinois, le problème est que je ne sais pas comment ils ont obtenu le nom de la police à travailler avec VIM, Courier New
est mentionné comme Courier_New
également NSimsun
nulle part dans le répertoire de la police. La police que je veux utiliser est Latha
Mais, je ne sais pas comment l'utiliser dans le fichier _vimrc. set guifontwide=latha:h12
ou set guifontwide=Latha:h12
ne fonctionne pas.
Si je réussis à définir le guifontwide
sur latha
, mon problème sera résolu, comment le faire?
'guifont'
et la valeur de'guifontwide'
? De plus, quel système d'exploitation utilisez-vous et quelle version de vim?set guifontwide=NSimsun:h12
échoue pour moi, dit "Police large invalide" probablement le même problème non monospace?Réponses:
Essayez de recharger le document en utilisant:
Si cela fonctionne, vous devriez peut-être modifier les
fileencodings
paramètres de votre .vimrc.la source
:u
vous sauvera cependant.:set noro
:e! ++enc=utf8
, il a rendu l'utf-8, mais s'est plaint[ILLEGAL BYTE in line 286]
(la première ligne de partie binaire) à l'intérieur du fichier. Je suppose que le comportement par défaut est de revenir silencieusement à un autre codage lorsque cela se produit à l'ouverture de Vim. Pour une raison quelconque, cependant,echo &enc
rapporte encore utf-8 dans ce cas.&enc
est l'encodage que vim utilise en interne pour stocker le contenu du tampon. Le paramètre qui contient l'encodage du fichier actuel est&fenc
As-tu essayé
?
la source
:set encoding=utf8
WILL rafraîchir la mémoire tampon et si le problème était dans le codage incorrect, il va fixer. J'ai ajouté uneset fileencoding=utf8
option pour que vous ne rencontriez pas l'erreur la plus déroutante "Impossible de convertir certains caractères" lors de l'enregistrement.~/.vimrc
et cela a bien fonctionnéSi des Japonais viennent ici, veuillez ajouter les lignes suivantes à votre
~/.vimrc
la source
Sous Microsoft Windows, gvim ne vous permettrait pas de sélectionner des polices non monospaces. Malheureusement Latha est une police non monospace.
Il y a un moyen de pirater pour y arriver: en utilisant FontForge (vous pouvez télécharger le binaire Windows à partir de http://www.geocities.jp/meir000/fontforge/ ) pour éditer le Latha.ttf et le marquer comme une police à espacement fixe. Faire comme ça:
Bonne chance!
la source
Sous Linux, ouvrez le fichier de configuration VIM
Ajout des lignes suivantes:
Enregistrer et quitter, et commande de terminal:
À ce moment, VIM affichera correctement le chinois.
la source
Ce problème est-il résolu entre-temps?
J'ai eu le problème que gvim n'affichait pas tous les caractères Unicode (mais seulement un sous-ensemble, y compris les trémas et les caractères accentués), alors qu'il
:set guifont?
était vide; voir ma question . Après avoir lu ici, définir leguifont
sur une valeur raisonnable l'a corrigé pour moi. Cependant, je n'ai pas besoin de caractères au-delà de 2 octets.la source
Je ne pouvais pas faire apparaître d'autres polices installées dans mon éditeur Windows GVim, alors je suis juste passé à celle
Lucida Console
qui a au moins un meilleur support UTF-8. Ajoutez ceci à la fin de votre_vimrc
:Maintenant, je vois au moins quelques caractères UTF-8.
la source
Sous Windows gvim, sélectionnez simplement la police "Lucida Console".
la source