Как установить язык пользовательского интерфейса в vim?

102

Я видел это на Reddit, и это напомнило мне об одной из моих претензий к vim: он показывает интерфейс на немецком языке . Черт тебя побери, вим! Я хочу английский , но поскольку моя ОС настроена на немецком языке (стандарт в нашем офисе), я думаю, что vim на самом деле пытается помочь.

Какие магические заклинания я должен выполнить, чтобы vim переключил язык интерфейса? Я несколько раз пробовал поискать в Google, но не могу найти ответа (нет, Google, вы мой друг * пат *, * пат *, но я уже знаю, как изменить подсветку синтаксиса, спасибо!) ...

РЕДАКТИРОВАТЬ: Используя все приведенные ниже полезные советы, я закончил тем, что добавил это в начало своих .vimrc(запускал Vim 7.2 в 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)
Дарен Томас
источник
Со своей стороны, language en всегда выдает ошибку при запуске gVim. Я использовал язык C, и это сработало отлично!
ghigad

Ответы:

34

Как отметил Кен, вы хотите в :languageкоманде .

Обратите внимание, что включение этого параметра в ваше меню .vimrcили .gvimrcне поможет вам с меню в gvim, поскольку их определение загружается один раз при запуске, очень рано и не перечитывается позже. Таким образом, вам действительно нужно установить LC_ALL(или более конкретно LC_MESSAGES) в своей среде - или в системах, отличных от Unixoid (например, Windows), вы можете передать --cmdпереключатель (который выполняет данную команду первым делом, а не -cпараметр):

gvim --cmd "lang en_US"

Как я уже упоминал, вам не нужно использовать LC_ALL, это принудительно переключит все аспекты вашей вычислительной среды. Вы можете делать более тонкие вещи. Например, мои собственные настройки локали выглядят так:

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

Это означает, что я получаю в основном английскую систему, но с немецкой семантикой для букв, за исключением того, что порядок сортировки по умолчанию - ASCIIbetical (т.е. сортировка по кодовой точке, а не в соответствии с языковыми соглашениями). Вы можете использовать другой вариант; увидеть man 7 localeбольше.

Аристотель Пагальцис
источник
1
Мне придется еще раз проверить это - в настоящее время он не работает, AFAIR, но будет иметь доступ к рассматриваемой машине только в следующую среду. Спасибо за ваш ответ.
Дарен Томас
у меня не сработало (vim жаловался, что не может найти en_US ?!), но решение @ August-Lilleaas действительно сработало!
Стефано
17
На Windows 7 мне пришлось использоватьgvim --cmd "lang English_United States"
hfs
2
вы также можете добавить language messages enв свой vimrc (примечание: это должно быть в самом начале).
vorou
4
@hfs Большое спасибо за ваш комментарий. Я добавил language English_United Statesв свой _vimrcфайл, и это помогло мне под VIM 7.4 и Windows 8.
Артём
98

Для справки, в Windows (7) я просто удалил каталог C:\Program Files (x86)\Vim\vim72\lang. Это заставило его вернуться к en_US.

Август Лиллеас
источник
14
Я перешел на lang_ori на случай, если он мне понадобится позже.
shin
1
\usr\share\vim\vim80\langдля пользователей MinGW или Cygwin в Windows помогает
it3xl
@AugustLilleaas Как вы думаете, удаление langпапки безопасно?
Дэнни
38

Попробуйте это в _vimrc. Работает с моим win7.

set langmenu=en_US
let $LANG = 'en_US'
source $VIMRUNTIME/delmenu.vim
source $VIMRUNTIME/menu.vim
zjk
источник
То же самое здесь, этот сработал. Я считаю, что delmenu - menuцикл имеет решающее значение.
ThomasH
18

Помещение этой строки кода в начало моего файла _vimrc спасло мне день:

set langmenu=en_US.UTF-8
Павел Бастов
источник
9
На самом деле это установлено langmenu = en_US.UTF-8, по крайней мере, на моем gVim 7.2
Rytmis
Работает как шарм, конечно, как говорит Ритмис, без двоеточия (:)
Петр Овсяк
примечание: это установит язык меню, но для сообщений и т. д. необходимо установить: language.
Дарен Томас
Обратите внимание, что вы можете упростить задачу, используя set langmenu=noneвместо указания фактического (английского) языка.
Rabarberski
11

Это сработало для изменения языка меню vim

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

Но

language en 

дал мне ошибку, говоря, что он не может установить en как язык, но эта строка выполнила свою работу

:let $LANG = 'en'

Последние взяты из документации Vim . Я добавил обе строки в начало файла _vimrc. Я использую компьютер с Windows 7 64.

PS: эта строка меняет как язык, так и язык меню

language messages en

В файле .vimrc (или файле _vimrc, если вы находитесь в Windows)

PerseP
источник
6

Ubuntu 10.10 + VIM 7.2 Улучшено. Код ниже меняет язык для консоли vim. Добавьте его вверху вашего vim.rc

if has('unix')
    language messages C
else
    language messages en
endif
Антон Орел
источник
4

Эти две строки в начале вашего файла .vimrc выполнят эту работу:

let $LANG = 'en'
set langmenu=none
Марк
источник
4

Добавление этого в _vimrc работает для меня в Windows 8:

set langmenu=en_US
let $LANG = 'en_US'

(обратите внимание, что _vimrc находится в том же каталоге, что и мой каталог vim74, это файл _vimrc, который vim читает при запуске)

Игнасио
источник
3

Запустите vim с измененной локалью:

LC_ALL=en_GB.utf-8 vim

Или экспортируйте эту переменную по умолчанию в свой профиль bashrc /.

Армин Ронахер
источник
1

Я не знаю, почему все вышеперечисленные ответы не помогли мне. Я продолжал получать ошибки о том, что локали не существуют. Может дело в винде. В любом случае, моим решением было добавить это в мой vimrc: let $ LANG = 'en'

Ах, я заговорил слишком рано. Меню gVim по-прежнему на японском, но заставка на английском языке.

HydroKirby
источник
1

Окна - Два Vim

Ничего из этого не помогло мне, пока я не понял, что у меня 2 Vim.

  1. Git Bash через MinGW (Cygwin, mintty)
  2. Отдельная установка в Program Files в Windows

Следующая команда отфильтрует все наблюдаемые вами vimrc -файлы и их расположение.

vim --version | grep vimrc
  • _vimrc (Windows и CMD)
  • .vimrc (Bash для Git)
  • vimrc (имеет разные места для обоих)

1: Vim для Windows и CMD

Помогло только переименование (удаление) папки lang .

Вы можете найти это здесь C:\Program Files (x86)\Vim\vim80\lang

Я перепробовал все настройки конфигурации, перечисленные здесь. Это было бесполезно.

2.1: Git Bash через MinGW, Cygwin, mintty

Для Git Bash я добавил language messages en_USвверхуC:\Program Files\Git\etc\vimrc

Конечно, если вы предпочитаете удалить папку lang, вы можете найти ее здесь

  • C:\Program Files\Git\usr\share\vim\vim80\lang
  • C:\Users\User_name_xxx\AppData\Local\Programs\Git\usr\share\vim\vim80\lang для установки локального пользователя.

2.2: Настройка только Git's Bash (MinGW64, Cygwin, mintty)

В конце концов, для Bash в Windows я решил пропустить манипуляции с vimrc.

Я открыл C:\Program Files\Git\etc\bash.bashrc и добавил следующую строку

LANG='en_US'

или

LANG=C

но не использовать, en_US.UTF-8потому что это создает странные символы для некоторых команд bash. Например, в `find 'xxx_yyy_zzz_aaa.bbbddd' для несуществующего файла.

it3xl
источник
1

Попробуйте добавить это в свой _vimrc :

let $LANG='en_US'
Люсьен
источник
0

Если вы работаете в Windows и не хотите, чтобы вас беспокоили команды

Чтобы предотвратить загрузку файлов локализации через графический интерфейс

Просто перейдите к Program Files\Vim\vim80\langи поставьте символ подчеркивания в качестве префикса перед всеми файлами, которые выглядят так, как будто они имеют какое-то отношение к вашему языку.

Чтобы сам VIM не загружал файлы локализации

В той же папке, что и выше, добавьте префикс с подчеркиванием к папке, названной с кодом вашей страны.

Примечание . Windows 10, вероятно, запросит права администратора, выдав предупреждение UAC.

Кстати

Этот же метод можно применить ко многим инструментам Unix / Linux, перенесенным на Windows, и, как правило, ко всем программным пакетам, в которых файлы локализации могут быть легко доступны. Если вы переименуете их, чтобы приложение не могло их найти, запасным языком, скорее всего, будет английский.

см
источник