Wie stelle ich die UI-Sprache in vim ein?

102

Ich habe das auf reddit gesehen und es erinnerte mich an einen meiner vim-Griffe: Es zeigt die Benutzeroberfläche auf Deutsch . Verdammt, Vim! Ich möchte Englisch , aber da mein Betriebssystem auf Deutsch eingerichtet ist (der Standard in unserem Büro), versucht vim tatsächlich, hilfreich zu sein.

Welche magischen Beschwörungsformeln muss ich ausführen, damit vim die UI-Sprache wechselt? Ich habe bei verschiedenen Gelegenheiten versucht zu googeln, kann aber keine Antwort finden (Nein, Google, du bist mein Freund * pat *, * pat *, aber ich weiß bereits, wie man die Syntaxhervorhebung ändert, danke!) ...

BEARBEITEN: Mit all den guten Tipps unten habe ich dies oben auf meinem hinzugefügt .vimrc(unter Vim 7.2 unter 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
quelle
Auf meiner Seite gab mir language en immer einen Fehler, wenn ich gVim startete. Ich habe Sprache C verwendet und es hat wie ein Zauber funktioniert!
Ghigad

Antworten:

34

Wie Ken bemerkt hat, möchten Sie den :languageBefehl .

Beachten Sie, dass das Einfügen in Ihre .vimrcoder .gvimrcdie Hilfestellung bei den Menüs in gvim nicht hilfreich ist, da deren Definition beim Start einmal sehr früh geladen und später nicht erneut gelesen wird. Sie müssen also wirklich LC_ALL(oder genauer gesagt LC_MESSAGES) in Ihrer Umgebung festlegen - oder auf Nicht-Unixoid-Systemen (z. B. Windows) können Sie den --cmdSchalter übergeben (der den angegebenen Befehl als erstes ausführt, im Gegensatz zur -cOption):

gvim --cmd "lang en_US"

Wie bereits erwähnt, müssen Sie keine verwenden LC_ALL, wodurch alle Aspekte Ihrer Computerumgebung zwangsweise geändert werden. Sie können nuanciertere Sachen machen. Zum Beispiel sehen meine eigenen Gebietsschemaeinstellungen so aus:

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

Dies bedeutet, dass ich ein weitgehend englisches System bekomme, jedoch mit deutscher Semantik für Buchstaben, mit der Ausnahme, dass die Standardsortierreihenfolge ASCIIbetical ist (dh nach Codepunkt sortieren, nicht nach Sprachkonventionen). Sie können eine andere Variante verwenden. siehe man 7 localefür mehr.

Aristoteles Pagaltzis
quelle
1
Ich muss das noch einmal überprüfen - es funktioniert derzeit nicht AFAIR, sondern wird erst nächsten Mittwoch Zugriff auf die betreffende Maschine haben. Danke für Ihre Antwort.
Daren Thomas
hat bei mir nicht funktioniert (vim hat sich beschwert, dass es en_US nicht finden konnte?!), aber die Lösung von @ August-Lilleaas hat funktioniert!
Stefano
17
Unter Windows 7 musste ichgvim --cmd "lang English_United States"
hfs
2
Sie können auch language messages enIhr vimrc hinzufügen (Hinweis: Es sollte ganz am Anfang stehen).
vorou
4
@hfs Vielen Dank für Ihren Kommentar. Ich habe language English_United Statesin meiner _vimrcDatei hinzugefügt und es hat mir unter VIM 7.4 und Windows 8 geholfen.
Artyom
98

Als Referenz habe ich in Windows (7) gerade das Verzeichnis gelöscht C:\Program Files (x86)\Vim\vim72\lang. Das machte es zu einem Fallback auf en_US.

August Lilleaas
quelle
14
Ich habe zu lang_ori gewechselt, falls ich es später brauche.
Shin
1
\usr\share\vim\vim80\langfür MinGW- oder Cygwin- Benutzer unter Windows hilft
it3xl
@AugustLilleaas Halten Sie das Löschen von Ordnern für langsicher?
Danny
38

Versuchen Sie dies in _vimrc. Es funktioniert mit meinem win7.

set langmenu=en_US
let $LANG = 'en_US'
source $VIMRUNTIME/delmenu.vim
source $VIMRUNTIME/menu.vim
zjk
quelle
Das gleiche hier, dieser hat funktioniert. Ich glaube, der delmenu - menuZyklus ist entscheidend.
ThomasH
18

Das Einfügen dieser Codezeile oben in meine _vimrc-Datei hat mir den Tag gerettet:

set langmenu=en_US.UTF-8
Pavel Bastov
quelle
9
Eigentlich ist das langmenu = en_US.UTF-8, zumindest auf meinem gVim 7.2
Rytmis
Funktioniert natürlich wie ein Zauber, wie Rytmis ohne Doppelpunkt sagt (:)
Piotr Owsiak
Hinweis: Hiermit wird die Sprache des Menüs festgelegt, für die Nachrichten usw. muss jedoch die Sprache eingestellt werden.
Daren Thomas
Beachten Sie, dass Sie es einfacher machen können, set langmenu=noneindem Sie die tatsächliche (englische) Sprache verwenden, anstatt sie anzugeben.
Rabarberski
11

Dies funktionierte, um die Menüsprache von vim zu ändern

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

Aber

language en 

gab mir eine Fehlermeldung, dass es en nicht als Sprache festlegen konnte, aber diese Zeile hat den Job gemacht

:let $LANG = 'en'

Letztere stammen aus den Dokumenten des Vim . Ich habe beide Zeilen am Anfang der _vimrc-Datei hinzugefügt. Ich benutze einen Windows 7 64 Computer.

PS: Diese Zeile ändert sowohl die Sprache als auch die Menüsprache

language messages en

In der .vimrc-Datei (oder in der _vimrc-Datei, wenn Sie sich in Windows befinden)

PerseP
quelle
6

Ubuntu 10.10 + VIM 7.2 verbessert. Der folgende Code ändert die Sprache für Console Vim. Fügen Sie es oben auf Ihrer vim.rc hinzu

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

Diese beiden Zeilen am Anfang Ihrer .vimrc-Datei erledigen die Aufgabe:

let $LANG = 'en'
set langmenu=none
Marc
quelle
3

Starten Sie vim mit einem geänderten Gebietsschema:

LC_ALL=en_GB.utf-8 vim

Oder exportieren Sie diese Variable standardmäßig in Ihr bashrc / Profil.

Armin Ronacher
quelle
3

: Hilfesprache

: Sprache fr_FR.ISO_8859-1

Ken
quelle
3

Das Hinzufügen zu _vimrc funktioniert für mich in Windows 8:

set langmenu=en_US
let $LANG = 'en_US'

(Beachten Sie, dass sich _vimrc in demselben Verzeichnis befindet, in dem sich mein vim74-Verzeichnis befindet. Dies ist die _vimrc-Datei, die vim beim Start liest.)

Ignacio
quelle
1

Ich weiß nicht, warum alle oben genannten Antworten bei mir nicht funktioniert haben. Ich bekam immer wieder Fehler über die Gebietsschemas, die nicht existierten. Vielleicht ist es eine Windows-Sache. In jedem Fall bestand meine Lösung darin, dies meinem vimrc hinzuzufügen: let $ LANG = 'en'

Ah, ich habe zu früh gesprochen. Die Menüs von gVim sind immer noch auf Japanisch, aber der Intro-Bildschirm ist auf Englisch.

HydroKirby
quelle
1

Windows - Zwei Vim

Nichts von hier hat mir geholfen, bis ich festgestellt habe, dass ich 2 Vim habe.

  1. Git Bash über MinGW (Cygwin, mintty)
  2. Eine separate Installation in den Programmen unter Windows

Der nächste Befehl filtert Sie alle beobachteten vimrc- Dateien und ihre Speicherorte.

vim --version | grep vimrc
  • _vimrc (Windows & CMD)
  • .vimrc (Bash für Git)
  • vimrc (hat unterschiedliche Standorte für beide)

1: Vim unter Windows & CMD

Nur das Umbenennen (Löschen) des lang- Ordners hat mir geholfen.

Sie finden es hier C:\Program Files (x86)\Vim\vim80\lang

Ich habe alle hier aufgeführten Konfigurationseinstellungen ausprobiert. Es war nutzlos.

2.1: Git Bash durch MinGW, Cygwin, Mintty

Für Git Bash Ich habe hinzugefügt , language messages en_USan der SpitzeC:\Program Files\Git\etc\vimrc

Wenn Sie den lang- Ordner lieber löschen möchten, finden Sie ihn natürlich hier

  • C:\Program Files\Git\usr\share\vim\vim80\lang
  • C:\Users\User_name_xxx\AppData\Local\Programs\Git\usr\share\vim\vim80\lang für eine lokale Benutzerinstallation.

2.2: Nur Git's Bash optimieren (MinGW64, Cygwin, mintty)

Am Ende habe ich für Bash unter Windows beschlossen, Manipulationen mit vimrc zu überspringen

Ich öffnete C:\Program Files\Git\etc\bash.bashrc und fügte die nächste Zeile hinzu

LANG='en_US'

oder

LANG=C

aber nicht verwenden, en_US.UTF-8weil es seltsame Zeichen für einige Bash-Befehle macht. Zum Beispiel in `find 'xxx_yyy_zzz_aaa.bbbddd' für nicht vorhandene Dateien.

it3xl
quelle
1

Versuchen Sie, dies zu Ihrem _vimrc hinzuzufügen:

let $LANG='en_US'
Lucien
quelle
0

Wenn Sie unter Windows arbeiten und keine Befehle ausgeben möchten

So verhindern Sie, dass die GUI Lokalisierungsdateien lädt

Gehen Sie einfach zu Program Files\Vim\vim80\langund setzen Sie einen Unterstrich als Präfix vor alle Dateien, die so aussehen, als hätten sie etwas mit Ihrem Gebietsschema zu tun.

Um zu verhindern, dass VIM selbst Lokalisierungsdateien lädt

Stellen Sie im selben Ordner wie oben dem Ordner mit Ihrem Ländercode einen Unterstrich voran.

Hinweis : Windows 10 fordert wahrscheinlich Administratorrechte an, indem eine UAC-Warnung ausgegeben wird.

Apropos

Dieselbe Technik kann auf viele unter Windows portierte Unix / Linux-Tools und im Allgemeinen auf alle Softwarepakete angewendet werden, auf die problemlos auf die Lokalisierungsdateien zugegriffen werden kann. Wenn Sie diese umbenennen, um zu verhindern, dass die Anwendung sie findet, ist die Fallback-Sprache höchstwahrscheinlich Englisch.

sm
quelle