web-dev-qa-db-fra.com

Message d'erreur lors du démarrage de vim: "Impossible de définir la catégorie de paramètres régionaux LC_NUMERIC sur en_CH" (ou en_BR, en_RU & LC_TIME, LC_COLLATE, LC_MONETARY, LC_MESSAGES)

J'ai fraîchement installé vim (Vi IMproved 8.1) en tant qu'éditeur de texte sur mon MacOS 10.14.5 avec Homebrew. Chaque fois que j'exécute vim, j'obtiens ce message d'erreur:

Warning: Failed to set locale category LC_NUMERIC to en_CH.
Warning: Failed to set locale category LC_TIME to en_CH.
Warning: Failed to set locale category LC_COLLATE to en_CH.
Warning: Failed to set locale category LC_MONETARY to en_CH.
Warning: Failed to set locale category LC_MESSAGES to en_CH.

Je dois cliquer sur ENTREE et cela fonctionne, mais je voudrais me débarrasser de ce message d'erreur.

J'ai vu un message similaire sur ce lien

Comment puis-je me débarrasser de ce message d'erreur?

43
ecjb

Tout d'abord, accédez à votre .bash_profile fichier en tapant ce qui suit (en utilisant vim comme éditeur de texte):

vim ~/.bash_profile

À l'intérieur du fichier .bash_profile, insérez la ligne suivante:

export LC_ALL=en_US.UTF-8

Notez cependant que les nouvelles versions de macOS sont livrées avec zsh au lieu de bash comme shell par défaut. Si c'est le cas avec votre Mac, vous devrez éditer ~/.zshrc au lieu de ~/.bash_profile.

Redémarrez le terminal et relancez vim: le message d'erreur aurait dû disparaître.

Merci @geoyws - George Yong et pkropachev Pavel Kropachev pour leur réponse trouvée , merci @ bk2204 pour les indices dans l'autre réponse

87
ecjb

En bref: votre macOS/Unix/Linux n'a pas la configuration par défaut des locales et vous devez la connecter au redémarrage de votre bash. Par conséquent, la solution consiste à mettre à jour les fichiers de configuration et à les recharger (dans mon exemple, la langue serait l'anglais et l'encodage par défaut serait UTF-8):

Si vous utilisez oh-my-zsh:

vim ~/.zshrc
export LC_ALL=en_US.UTF-8

Si vous utilisez fish-Shell:

vim ~/.config/fish/config.fish
set -x LC_ALL en_US.UTF-8

else (par défaut):

vim ~/.bash_profile 
#OR (vim  ~/.bashrc) 
export LC_ALL=en_US.UTF-8
15
avivamg

si vous utilisez zsh, vous pourriez

vim ~/.zshrc

et décommenter la ligne suivante:

export LC_ALL=en_US.UTF-8
9
Leah

si vous utilisez du poisson, vous pourriez

vim ~/.config/fish/config.fish
set -x LC_ALL en_US.UTF-8
5
Jim Han

D'une manière ou d'une autre, vos paramètres régionaux sont définis sur "en_CH". Ce paramètre régional est pour l'anglais parlé en Suisse, mais sur votre système, ce n'est pas un paramètre régional valide. Généralement, les paramètres régionaux contiennent également un jeu de caractères à utiliser, tel que "UTF-8" dans "en_US.UTF-8", qui est également absent ici.

Il est probable que quelque chose dans votre configuration Shell définit ces valeurs, car macOS ne définit généralement pas ces valeurs spécifiques; à la place, il définit la variable d'environnement LANG et utilise toujours les paramètres régionaux UTF-8. Vous devez vérifier votre .bashrc et .bash_profile paramètres ou éventuellement votre .zshenv, .zshrc, et .zprofile paramètres et modifiez les LANG, LC_ALL, ou autre LC_* variable que vous avez peut-être définie.

Comme note, je ne connais aucun système qui a une locale en_CH; en général, il n'y aura que des paramètres régionaux pour les langues couramment parlées dans le pays ou la région (souvent, mais pas toujours, les langues officielles). Par exemple, alors qu'il existe certainement de nombreux locuteurs du français aux États-Unis, les systèmes ne fournissent généralement pas de paramètres régionaux fr_US.UTF-8, car il n'y a pas suffisamment de locuteurs pour avoir établi des normes de localisation. Vous devrez peut-être choisir un autre paramètre régional anglais, tel que "en_GB.UTF-8" ou "en_US.UTF-8" suffisamment proche de vos besoins, ou définir des variables "LC" individuelles en fonction des paramètres que vous souhaitez sélectionner et chooise.

4
bk2204

Sinon, si vous ne pouvez pas créer vos paramètres régionaux spécifiques (par exemple avec MacOS sans racine *), définissez un paramètre régional déjà installé.

vim ~/.bash_profile
export LC_ALL=C

J'ai trouvé que la locale C était disponible sur tous les systèmes auxquels j'ai accédé, y compris ceux via SSH. Vous pouvez répertorier les paramètres régionaux disponibles via locale -a.

* Et je ne veux pas emprunter la voie du mess avec SIP

0
Cruiser