Comment laisser vim listchar fonctionner sous un environnement non utf8?

8

Mon .vimrc contient:

if $LANG =~ '\(UTF\|utf\)-\?8' || $LC_CTYPE =~ '\(UTF\|utf\)-\?8'
  set list listchars=tab:»·,trail:~,extends:>,precedes:<
endif

Mais il y a des caractères qui sont unicode, lorsque j'exécute vim sous l'environnement LC_CTYPE = zh_TW.Big5, cela montrera

Error detected while processing /home/user/.vimrc:
  line   70:
E474: Invalid argument: listchars=tab:»·,trail:~,extends:>,precedes:<
Daniel YC Lin
la source

Réponses:

5

Ajoutez la ligne suivante à votre vimrc, de préférence vers le début:

scriptencoding utf-8

Cela indiquera à vim de lire le fichier au format UTF8 même si vous utilisez un système non UTF. Il transcodera ensuite tous les caractères de celui-ci dans votre encodage actuel. Si les caractères que vous utilisez dans l'option listchars existent, les autres encodages que vous utilisez ne devraient même pas avoir besoin du conditionnel autour de cela.

qqx
la source
Cette méthode fonctionne sur vim, mais j'ai trouvé que gvim affiche toujours ce message d'erreur.
Daniel YC Lin
1
Avez-vous un .gvimrcfichier qui contient également des caractères Unicode? Si c'est le cas, l'ajout de la même ligne à ce fichier devrait également résoudre le problème. Cette commande ne s'applique qu'au fichier dans lequel elle se trouve, elle devrait donc être incluse dans tout fichier de configuration vim où l'encodage des caractères est important.
qqx
J'ai trouvé le problème causé par mon gvimrc et l'ai corrigé.
Daniel YC Lin