Comment définir la langue de l'interface utilisateur dans vim?

102

J'ai vu cela sur reddit, et cela m'a rappelé l'un de mes reproches vim: il montre l'interface utilisateur en allemand . Bon sang, vim! Je veux l' anglais , mais comme mon système d'exploitation est configuré en allemand (la norme dans notre bureau), je suppose que vim essaie en fait d'être utile.

Quelles incantations magiques dois-je effectuer pour que vim change la langue de l'interface utilisateur? J'ai essayé googler à plusieurs reprises, mais je n'arrive pas à trouver de réponse (non, Google, vous êtes mon ami * pat *, * pat *, mais je sais déjà comment modifier la coloration syntaxique, merci!) ...

EDIT: En utilisant tous les bons conseils ci-dessous, j'ai fini par l'ajouter en haut de mon .vimrc(exécutant Vim 7.2 sur Windows 7)

set langmenu=en_US.UTF-8    " sets the language of the menu (gvim)
language en                 " sets the language of the messages / ui (vim)
Daren Thomas
la source
De mon côté, language en m'a toujours donné une erreur lorsque j'ai lancé gVim. J'ai utilisé le langage C et cela a fonctionné comme un charme!
ghigad le

Réponses:

34

Comme Ken l'a noté, vous voulez la :languagecommande .

Notez que le mettre dans votre .vimrcou .gvimrcne vous aidera pas avec les menus de gvim, car leur définition est chargée une fois au démarrage, très tôt, et ne sera pas relue plus tard. Vous avez donc vraiment besoin de définir LC_ALL(ou plus spécifiquement LC_MESSAGES) dans votre environnement - ou sur les systèmes non Unixoid (par exemple Windows), vous pouvez passer le --cmdcommutateur (qui exécute la commande donnée en premier, par opposition à l' -coption):

gvim --cmd "lang en_US"

Comme je l'ai mentionné, vous n'avez pas besoin d'utiliser LC_ALL, ce qui changera de force tous les aspects de votre environnement informatique. Vous pouvez faire des choses plus nuancées. Par exemple, mes propres paramètres régionaux ressemblent à ceci:

LANG=en_US.utf8
LC_CTYPE=de_DE.utf8
LC_COLLATE=C

Cela signifie que j'obtiens un système largement anglais, mais avec une sémantique allemande pour les lettres, sauf que l'ordre de tri par défaut est ASCIIbétique (c.-à-d. Trier par point de code, pas selon les conventions linguistiques). Vous pouvez utiliser une variante différente; voir man 7 localepour plus.

Aristote Pagaltzis
la source
1
Je vais devoir vérifier cela un peu plus - il ne fonctionne pas actuellement AFAIR, mais n'aura accès à la machine en question que mercredi prochain. Merci pour votre réponse.
Daren Thomas
n'a pas fonctionné pour moi (vim s'est plaint qu'il ne pouvait pas trouver en_US?!) mais la solution @ August-Lilleaas a fonctionné!
Stefano le
17
Sur Windows 7, j'ai dû utilisergvim --cmd "lang English_United States"
hfs
2
vous pouvez également ajouter language messages endans votre vimrc (note: cela devrait être au tout début).
vorou
4
@hfs Merci beaucoup pour votre commentaire. J'ai ajouté language English_United Statesdans mon _vimrcfichier et cela m'a aidé sous VIM 7.4 et Windows 8.
Artyom
98

Pour référence, dans Windows (7), je viens de supprimer le répertoire C:\Program Files (x86)\Vim\vim72\lang. Cela a fait revenir en_US.

August Lilleaas
la source
14
J'ai changé en lang_ori au cas où j'en aurais besoin plus tard.
shin
1
\usr\share\vim\vim80\langpour les utilisateurs de MinGW ou Cygwin sur Windows aide
it3xl
@AugustLilleaas Pensez-vous que la suppression d'un langdossier est sûre?
Danny le
38

Essayez ceci dans _vimrc. Cela fonctionne avec mon win7.

set langmenu=en_US
let $LANG = 'en_US'
source $VIMRUNTIME/delmenu.vim
source $VIMRUNTIME/menu.vim
zjk
la source
Même chose ici, celui-ci a fonctionné. Je pense que le delmenu - menucycle est crucial.
ThomasH
18

Mettre cette ligne de code en haut de mon fichier _vimrc m'a sauvé la journée:

set langmenu=en_US.UTF-8
Pavel Bastov
la source
9
En fait, c'est défini langmenu = en_US.UTF-8, au moins sur mon gVim 7.2
Rytmis
Fonctionne comme un charme, bien sûr comme le dit Rytmis sans les deux points (:)
Piotr Owsiak
Remarque: cela définira la langue du menu, mais les messages, etc. ont besoin du: language set.
Daren Thomas
Notez que vous pouvez faciliter les choses en utilisant set langmenu=noneau lieu de spécifier la langue réelle (anglais).
Rabarberski
11

Cela a fonctionné pour changer la langue du menu de vim

set langmenu=en_US.UTF-8  [or just set langmenu=en for short]

Mais

language en 

m'a donné une erreur disant qu'il ne pouvait pas définir en comme langue mais cette ligne a fait le travail

:let $LANG = 'en'

Ces derniers proviennent de la documentation du Vim . J'ai ajouté les deux lignes au début du fichier _vimrc. J'utilise un ordinateur Windows 7 64.

PS: cette ligne change à la fois la langue et la langue des menus

language messages en

Dans le fichier .vimrc (ou le fichier _vimrc si vous êtes dans Windows)

PerseP
la source
6

Ubuntu 10.10 + VIM 7.2 IMproved. Le code ci-dessous change la langue de la console vim. Ajoutez-le en haut de votre vim.rc

if has('unix')
    language messages C
else
    language messages en
endif
Anton Orel
la source
4

Ces deux lignes au début de votre fichier .vimrc feront l'affaire:

let $LANG = 'en'
set langmenu=none
Marc
la source
4

L'ajout de ceci à _vimrc fonctionne pour moi dans Windows 8:

set langmenu=en_US
let $LANG = 'en_US'

(notez que _vimrc est dans le même répertoire qui contient mon répertoire vim74, c'est le fichier _vimrc que vim lit au démarrage)

Ignacio
la source
3

Démarrez vim avec une locale modifiée:

LC_ALL=en_GB.utf-8 vim

Ou exportez cette variable par défaut dans votre bashrc / profile.

Armin Ronacher
la source
3

: langue d'aide

: langue fr_FR.ISO_8859-1

Ken
la source
1

Je ne sais pas pourquoi toutes les réponses ci-dessus n'ont pas fonctionné pour moi. J'ai continué à recevoir des erreurs concernant les paramètres régionaux inexistants. C'est peut-être une chose Windows. En tout cas, ma solution était d'ajouter ceci à mon vimrc: let $ LANG = 'en'

Ah, j'ai parlé trop tôt. Les menus de gVim sont toujours en japonais, mais l'écran d'introduction est en anglais.

HydroKirby
la source
1

Windows - Deux Vim

Rien d'ici ne m'a aidé jusqu'à ce que je réalise que j'ai 2 Vim.

  1. Git Bash via MinGW (Cygwin, menthe)
  2. Une installation séparée dans les fichiers de programme sous Windows

La commande suivante vous filtrera tous les fichiers vimrc regardés et leurs emplacements.

vim --version | grep vimrc
  • _vimrc (Windows et CMD)
  • .vimrc (Bash pour Git)
  • vimrc (a des emplacements différents pour les deux)

1: Vim sur Windows et CMD

Seul le changement de nom (suppression) du dossier lang m'a aidé.

Vous pouvez le trouver ici C:\Program Files (x86)\Vim\vim80\lang

J'ai essayé tous les paramètres de configuration répertoriés ici. C'était inutile.

2.1: Git Bash via MinGW, Cygwin, mintty

Pour Git Bash, j'ai ajouté language messages en_USen haut deC:\Program Files\Git\etc\vimrc

Bien sûr, si vous préférez supprimer le dossier lang , vous pouvez le trouver ici

  • C:\Program Files\Git\usr\share\vim\vim80\lang
  • C:\Users\User_name_xxx\AppData\Local\Programs\Git\usr\share\vim\vim80\lang pour une installation utilisateur locale.

2.2: Réglage uniquement de Git's Bash (MinGW64, Cygwin, mintty)

À la fin, pour Bash sous Windows, j'ai choisi d'ignorer les manipulations avec vimrc

J'ai ouvert C:\Program Files\Git\etc\bash.bashrc et ajouté la ligne suivante

LANG='en_US'

ou

LANG=C

mais ne pas utiliser en_US.UTF-8car cela crée des caractères étranges pour certaines commandes bash. Par exemple dans `find 'xxx_yyy_zzz_aaa.bbbddd' pour un fichier non existant.

it3xl
la source
1

Essayez d'ajouter ceci à votre _vimrc :

let $LANG='en_US'
Lucien
la source
0

Si vous êtes sous Windows et que vous ne voulez pas être dérangé d'émettre des commandes

Pour empêcher l'interface graphique de charger les fichiers de localisation

Allez simplement à Program Files\Vim\vim80\langet mettez un trait de soulignement comme préfixe devant tous les fichiers qui semblent avoir quelque chose à voir avec votre locale.

Pour empêcher VIM lui-même de charger les fichiers de localisation

Dans le même dossier que ci-dessus, préfixez avec un trait de soulignement le dossier nommé avec votre code de pays.

Remarque : Windows 10 demandera probablement des privilèges d'administrateur en levant un avertissement UAC.

Au fait

Cette même technique peut être appliquée à de nombreux outils Unix / Linux portés sur Windows, et généralement à tous les progiciels où les fichiers de localisation sont facilement accessibles. Si vous les renommez pour empêcher l'application de les trouver, la langue de secours sera probablement l'anglais.

sm
la source