Come si imposta la lingua dell'interfaccia utente in vim?


102

Ho visto questo su reddit, e mi viene in mente una delle mie lamentele vim: Esso mostra l'interfaccia utente in tedesco . Accidenti a te, vim! Voglio l' inglese , ma poiché il mio sistema operativo è impostato in tedesco (lo standard nel nostro ufficio), immagino che vim stia effettivamente cercando di essere utile.

Quali incantesimi magici devo eseguire per convincere vim a cambiare la lingua dell'interfaccia utente? Ho provato a cercare su Google in varie occasioni, ma non riesco a trovare una risposta (No, Google, sei mio amico * pat *, * pat *, ma so già come cambiare l'evidenziazione della sintassi, grazie!) ...

EDIT: Usando tutti i buoni suggerimenti di seguito, ho finito per aggiungerlo all'inizio del mio .vimrc(eseguendo Vim 7.2 su 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)

Da parte mia, language en mi ha sempre dato un errore quando ho avviato gVim. Ho usato il linguaggio C e ha funzionato a meraviglia!
ghigad

Risposte:


34

Come ha notato Ken, tu vuoi il :languagecomando .

Nota che inserire questo nel tuo .vimrco .gvimrcnon ti aiuterà con i menu in gvim, poiché la loro definizione viene caricata una volta all'avvio, molto presto, e non viene riletta in seguito. Quindi devi davvero impostare LC_ALL(o più specificamente LC_MESSAGES) nel tuo ambiente - o su sistemi non Unixoid (es. Windows), puoi passare lo --cmdswitch (che esegue il comando dato per prima cosa, al contrario -cdell'opzione):

gvim --cmd "lang en_US"

Come ho già detto, non è necessario utilizzare LC_ALL, che cambierà forzatamente tutti gli aspetti del tuo ambiente di elaborazione. Puoi fare cose più sfumate. F.ex., le mie impostazioni locali assomigliano a questo:

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

Ciò significa che ottengo un sistema prevalentemente inglese, ma con semantica tedesca per le lettere, tranne per il fatto che l'ordinamento predefinito è ASCIIbetico (cioè ordina per punto di codice, non secondo le convenzioni linguistiche). Potresti usare una variazione diversa; vedere man 7 localedi più.


1
Dovrò controllare ancora un po ': al momento non funziona AFAIR, ma avrà accesso alla macchina in questione solo mercoledì prossimo. Grazie per la risposta.
Daren Thomas,

non ha funzionato per me (vim si è lamentato di non riuscire a trovare en_US ?!) ma la soluzione di @ August-Lilleaas ha funzionato!
Stefano

17
Su Windows 7 ho dovuto usaregvim --cmd "lang English_United States"
hfs

2
puoi anche aggiungere language messages ennel tuo vimrc (nota: dovrebbe essere all'inizio).
vorou

4
@hfs Molte grazie per il tuo commento. Ho aggiunto il language English_United Statesmio _vimrcfile e mi ha aiutato con VIM 7.4 e Windows 8.
Artyom

98

Per riferimento, in Windows (7) ho appena cancellato la directory C:\Program Files (x86)\Vim\vim72\lang. Ciò ha reso il fallback a en_US.


14
Ho cambiato in lang_ori nel caso ne avessi bisogno in seguito.
shin

1
\usr\share\vim\vim80\langper utenti MinGW o Cygwin su Windows aiuta
it3xl

@ AugustLilleaas Pensi che l'eliminazione della langcartella sia sicura?
Danny

38

Prova questo in _vimrc. Funziona con il mio win7.

set langmenu=en_US
let $LANG = 'en_US'
source $VIMRUNTIME/delmenu.vim
source $VIMRUNTIME/menu.vim

Lo stesso qui, questo ha funzionato. Credo che il delmenu - menuciclo sia cruciale.
ThomasH

18

Mettere questa riga di codice all'inizio del mio file _vimrc mi ha salvato la giornata:

set langmenu=en_US.UTF-8

9
In realtà è impostato langmenu = en_US.UTF-8, almeno sul mio gVim 7.2
Rytmis

Funziona a meraviglia, ovviamente come dice Rytmis senza i due punti (:)
Piotr Owsiak

nota: questo imposterà la lingua del menu, ma i messaggi ecc. necessitano della: lingua impostata.
Daren Thomas,

Nota che puoi renderlo più semplice utilizzando set langmenu=noneinvece di specificare la lingua (inglese) effettiva.
Rabarberski

11

Questo ha funzionato per cambiare la lingua del menu di vim

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

Ma

language en 

mi ha dato un errore dicendo che non poteva impostare en come lingua ma questa riga ha funzionato

:let $LANG = 'en'

Questi ultimi provengono dai documenti di Vim . Ho aggiunto entrambe le righe all'inizio del file _vimrc. Uso un computer Windows 7 64.

PS: questa riga cambia sia la lingua che la lingua dei menu

language messages en

Nel file .vimrc (o _vimrc se sei in Windows)


6

Ubuntu 10.10 + VIM 7.2 IMproved. Il codice seguente cambia la lingua per la console vim. Aggiungilo in cima al tuo vim.rc

if has('unix')
    language messages C
else
    language messages en
endif

4

Queste due righe all'inizio del file .vimrc faranno il lavoro:

let $LANG = 'en'
set langmenu=none

3

Avvia vim con una lingua modificata:

LC_ALL=en_GB.utf-8 vim

Oppure esporta quella variabile per impostazione predefinita nel tuo bashrc / profile.



3

L'aggiunta di questo a _vimrc funziona per me in Windows 8:

set langmenu=en_US
let $LANG = 'en_US'

(nota che _vimrc è nella stessa directory che contiene la mia directory vim74, questo è il file _vimrc che vim legge all'avvio)


1

Non so perché tutte le risposte di cui sopra non hanno funzionato per me. Continuavo a ricevere errori sulle impostazioni locali non esistenti. Forse è una cosa di Windows. In ogni caso, la mia soluzione era aggiungere questo al mio vimrc: let $ LANG = 'en'

Ah, ho parlato troppo presto. I menu di gVim sono ancora in giapponese, ma la schermata introduttiva è in inglese.


1

Windows - Due Vim

Niente da qui mi ha aiutato fino a quando non ho realizzato che ho 2 Vim.

  1. Git Bash tramite MinGW (Cygwin, mintty)
  2. Un'installazione separata nei Programmi su Windows

Il prossimo comando filtrerà tutti i file vimrc guardati e le loro posizioni.

vim --version | grep vimrc
  • _vimrc (Windows e CMD)
  • .vimrc (Bash per Git)
  • vimrc (ha posizioni diverse per entrambi)

1: Vim su Windows e CMD

Solo la ridenominazione (eliminazione) della cartella lang mi ha aiutato.

Potete trovare qui C:\Program Files (x86)\Vim\vim80\lang

Ho provato tutte le impostazioni di configurazione elencate qui. È stato inutile.

2.1: Git Bash attraverso MinGW, Cygwin, mintty

Per Git Bash ho aggiunto language messages en_USall'inizio diC:\Program Files\Git\etc\vimrc

Ovviamente se preferisci eliminare la cartella lang puoi trovarla qui

  • C:\Program Files\Git\usr\share\vim\vim80\lang
  • C:\Users\User_name_xxx\AppData\Local\Programs\Git\usr\share\vim\vim80\lang per un'installazione utente locale.

2.2: Accordare solo Bash di Git (MinGW64, Cygwin, mintty)

Alla fine, per Bash su Windows ho scelto di saltare le manipolazioni con vimrc

Ho aperto C:\Program Files\Git\etc\bash.bashrc e aggiunto la riga successiva

LANG='en_US'

o

LANG=C

ma non usare en_US.UTF-8perché rende strani caratteri ad alcuni comandi bash. Ad esempio in `find 'xxx_yyy_zzz_aaa.bbbddd' per file non esistenti.


1

Prova ad aggiungerlo al tuo _vimrc :

let $LANG='en_US'


0

Se sei su Windows e non vuoi essere disturbato a emettere comandi

Per impedire alla GUI di caricare i file di localizzazione

Vai a Program Files\Vim\vim80\lange metti un trattino basso come prefisso davanti a tutti i file che sembrano avere qualcosa a che fare con la tua locale.

Per impedire a VIM stesso di caricare i file di localizzazione

Nella stessa cartella di cui sopra, anteponi un trattino basso alla cartella denominata con il codice del tuo paese.

Nota : Windows 10 probabilmente chiederà i privilegi di amministratore sollevando un avviso UAC.

A proposito

Questa stessa tecnica può essere applicata a molti strumenti Unix / Linux portati su Windows e generalmente a tutti i pacchetti software in cui è possibile accedere facilmente ai file di localizzazione. Se li rinomini per impedire all'applicazione di trovarli, la lingua di riserva sarà molto probabilmente l'inglese.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.