Jak ustawić język interfejsu użytkownika w vimie?

102

Widziałem to na reddicie i przypomniało mi to jedno z moich narzekań vima: pokazuje interfejs użytkownika w języku niemieckim . Cholera, vim! Chcę angielskiego , ale ponieważ mój system operacyjny jest ustawiony w języku niemieckim (standard w naszym biurze), wydaje mi się, że vim stara się być pomocny.

Jakie magiczne inkantacje muszę wykonać, aby Vim zmienił język interfejsu użytkownika? Próbowałem googlować przy różnych okazjach, ale nie mogę znaleźć odpowiedzi (Nie, Google, jesteś moim przyjacielem * pat *, * pat *, ale już wiem, jak zmienić podświetlanie składni, dziękuję!) ...

EDYCJA: Korzystając ze wszystkich dobrych wskazówek poniżej, dodałem to na górze mojego .vimrc(uruchamiając Vim 7.2 na 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
źródło
Z mojej strony język en zawsze dawał mi błąd, kiedy uruchamiałem gVim. Użyłem języka C i zadziałało to jak urok!
ghigad

Odpowiedzi:

34

Jak zauważył Ken, chcesz na :languagekomendę .

Zwróć uwagę, że umieszczenie tego w menu w gvimie .vimrclub .gvimrcnie pomoże ci z menu, ponieważ ich definicja jest ładowana raz przy starcie, bardzo wcześnie i nie jest ponownie czytana później. Więc naprawdę musisz ustawić LC_ALL(a dokładniej LC_MESSAGES) w swoim środowisku - lub w systemach nieunixoidalnych (np. Windows), możesz przekazać --cmdprzełącznik (który wykonuje dane polecenie jako pierwsze, w przeciwieństwie do -copcji):

gvim --cmd "lang en_US"

Jak wspomniałem, nie musisz używać LC_ALL, co wymusi zmianę wszystkich aspektów twojego środowiska komputerowego. Możesz robić bardziej wyrafinowane rzeczy. F.ex., moje własne ustawienia regionalne wyglądają tak:

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

Oznacza to, że otrzymuję system głównie angielski, ale z niemiecką semantyką dla liter, z tą różnicą, że domyślna kolejność sortowania to ASCIIbetical (tj. Sortowanie według punktu kodowego, a nie według konwencji językowych). Możesz użyć innej odmiany; zobacz man 7 localewięcej.

Arystoteles Pagaltzis
źródło
1
Będę musiał to jeszcze sprawdzić - obecnie nie działa AFAIR, ale dostęp do omawianej maszyny będę miał dopiero w najbliższą środę. Dziękuję za odpowiedź.
Daren Thomas
nie zadziałało dla mnie (vim narzekał, że nie może znaleźć en_US ?!), ale rozwiązanie @ August-Lilleaas zadziałało!
Stefano
17
W systemie Windows 7 musiałem użyćgvim --cmd "lang English_United States"
hfs
2
możesz także dodać language messages enswoje vimrc (uwaga: powinno być na samym początku).
vorou
4
@hfs Wielkie dzięki za komentarz. Dodałem language English_United Statesw swoim _vimrcpliku i pomogło mi to pod VIM 7.4 i Windows 8.
Artem
98

Dla porównania, w Windows (7) właśnie usunąłem katalog C:\Program Files (x86)\Vim\vim72\lang. To sprawiło, że powrócił do en_US.

August Lilleaas
źródło
14
Zmieniłem na lang_ori na wypadek, gdyby potrzebowałem go później.
shin
1
\usr\share\vim\vim80\langdla użytkowników MinGW lub Cygwin w systemie Windows pomaga
it3xl
@AugustLilleaas Czy uważasz, że usunięcie langfolderu jest bezpieczne?
Danny
38

Spróbuj tego w _vimrc. Działa z moim win7.

set langmenu=en_US
let $LANG = 'en_US'
source $VIMRUNTIME/delmenu.vim
source $VIMRUNTIME/menu.vim
zjk
źródło
To samo tutaj, ten działał. Uważam, że delmenu - menucykl jest kluczowy.
ThomasH,
18

Umieszczenie tej linii kodu na początku mojego pliku _vimrc uratowało mój dzień:

set langmenu=en_US.UTF-8
Pavel Bastov
źródło
9
Właściwie to jest ustawione langmenu = en_US.UTF-8, przynajmniej na moim gVim 7.2
Rytmis,
Działa jak urok, oczywiście jak mówi Rytmis bez jelita (:)
Piotr Owsiak
uwaga: spowoduje to ustawienie języka menu, ale komunikaty itp. wymagają ustawienia: język.
Daren Thomas
Pamiętaj, że możesz to ułatwić, używając set langmenu=nonezamiast określania rzeczywistego języka (angielskiego).
Rabarberski
11

To działało przy zmianie języka menu vima

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

Ale

language en 

dał mi błąd, mówiąc, że nie można ustawić en jako języka, ale ta linia zadziałała

:let $LANG = 'en'

Te ostatnie pochodzą z dokumentacji Vima . Dodałem obie linie na początku pliku _vimrc. Używam komputera z systemem Windows 7 64.

PS: ta linia zmienia zarówno język, jak i język menu

language messages en

W pliku .vimrc (lub pliku _vimrc, jeśli jesteś w systemie Windows)

PerseP
źródło
6

Ubuntu 10.10 + VIM 7.2 IMproved. Poniższy kod zmienia język konsoli vim. Dodaj go na górze swojego vim.rc

if has('unix')
    language messages C
else
    language messages en
endif
Anton Orel
źródło
4

Te dwie linie na początku twojego pliku .vimrc wykonają zadanie:

let $LANG = 'en'
set langmenu=none
Marc
źródło
4

Dodanie tego do _vimrc działa dla mnie w systemie Windows 8:

set langmenu=en_US
let $LANG = 'en_US'

(zwróć uwagę, że _vimrc znajduje się w tym samym katalogu, w którym znajduje się mój katalog vim74, to jest plik _vimrc, który vim czyta podczas uruchamiania)

Ignacio
źródło
3

Uruchom Vima ze zmienioną lokalizacją:

LC_ALL=en_GB.utf-8 vim

Lub wyeksportuj tę zmienną domyślnie w swoim bashrc / profile.

Armin Ronacher
źródło
3

:Pomoc językowa

: język fr_FR.ISO_8859-1

Rozpoznać
źródło
1

Nie wiem, dlaczego wszystkie powyższe odpowiedzi nie zadziałały. Ciągle otrzymywałem błędy dotyczące nieistniejących ustawień regionalnych. Może to kwestia systemu Windows. W każdym razie moim rozwiązaniem było dodanie tego do mojego vimrc: niech $ LANG = 'en'

Ach, powiedziałem za wcześnie. Menu gVima jest nadal w języku japońskim, ale ekran powitalny jest w języku angielskim.

HydroKirby
źródło
1

Windows - Two Vim

Nic nie pomogło mi, dopóki nie zdałem sobie sprawy, że mam 2 Vima.

  1. Git Bash przez MinGW (Cygwin, Mintty)
  2. Oddzielna instalacja w plikach programu w systemie Windows

Następna komenda będzie filtrować wszystkie obserwowane vimrc -files i ich lokalizacje.

vim --version | grep vimrc
  • _vimrc (Windows i CMD)
  • .vimrc (Bash dla Git)
  • vimrc (ma różne lokalizacje dla obu)

1: Vim w systemie Windows i CMD

Pomogła mi tylko zmiana nazwy (usunięcie) folderu lang .

Znajdziesz go tutaj C:\Program Files (x86)\Vim\vim80\lang

Wypróbowałem wszystkie wymienione tutaj ustawienia konfiguracyjne. To było bezużyteczne.

2.1: Git Bash przez MinGW, Cygwin, Mintty

W przypadku Git Bash dodałem language messages en_USna początkuC:\Program Files\Git\etc\vimrc

Oczywiście, jeśli wolisz usunąć folder lang , możesz go znaleźć tutaj

  • C:\Program Files\Git\usr\share\vim\vim80\lang
  • C:\Users\User_name_xxx\AppData\Local\Programs\Git\usr\share\vim\vim80\lang do instalacji użytkownika lokalnego.

2.2: Tuning tylko Git's Bash (MinGW64, Cygwin, mintty)

Na koniec w przypadku Bash w systemie Windows zdecydowałem się pominąć manipulacje za pomocą vimrc

Otworzyłem C:\Program Files\Git\etc\bash.bashrc i dodałem następną linię

LANG='en_US'

lub

LANG=C

ale nie używać, en_US.UTF-8ponieważ powoduje to dziwne znaki dla niektórych poleceń basha. Na przykład w `find 'xxx_yyy_zzz_aaa.bbbddd' dla nieistniejącego pliku.

it3xl
źródło
1

Spróbuj dodać to do swojego _vimrc :

let $LANG='en_US'
Lucien
źródło
0

Jeśli korzystasz z systemu Windows i nie chcesz, aby przeszkadzało Ci wydawanie poleceń

Aby uniemożliwić GUI ładowanie plików lokalizacyjnych

Po prostu idź do Program Files\Vim\vim80\lang i umieść podkreślenie jako przedrostek przed wszystkimi plikami, które wyglądają tak, jakby miały coś wspólnego z ustawieniami regionalnymi.

Aby zapobiec ładowaniu plików lokalizacyjnych przez sam VIM

W tym samym folderze, co powyżej, przedrostkiem podkreśl folder o nazwie zawierającej kod Twojego kraju.

Uwaga : system Windows 10 prawdopodobnie poprosi o uprawnienia administratora, podnosząc ostrzeżenie o UAC.

tak poza tym

Tę samą technikę można zastosować do wielu narzędzi Unix / Linux przeniesionych na system Windows i ogólnie do wszystkich pakietów oprogramowania, w których można łatwo uzyskać dostęp do plików lokalizacyjnych. Jeśli zmienisz ich nazwy, aby aplikacja nie mogła ich znaleźć, językiem zastępczym najprawdopodobniej będzie angielski.

sm
źródło