Настройка поддержки русского языка в GVim (windows)
Хочу поделиться с сообществом опытом допиливания поддержки русского языка в GVim под Windows 7. GVim — очень мощный текстовый редактор, но в текущей Windows-реализации без тонких настроек он выглядит гадким утёнком по сравнению c GVim под Linux или MacVim.
Что будет в данной статье? Исправление локализации для Unicode в Windows-версии GVim, настройка переключения раскладки клавиатуры, включение проверки орфографии. Предполагается, что вы владеете азами работы в Vim. На хабре уже есть статья, затрагивающая тему поддержки русского языка, и хотя она всё ещё остаётся полезной, но на данный момент немного устарела.
В принципе русский язык в интерфейсе Windows версии GVim работает «из коробки», но есть небольшой нюанс: при выставленном Unicode редактор не отображает кириллицу в сообщениях и меню, поэтому либо приходится переключать GVim на английскую локализацию, либо мириться с этими «кракозябрами» в меню и «ять»-ями в приветствии программы. И это в наше время, когда подавляющие большинство программ и даже стандартный блокнот в Windows по умолчанию работает с Unicode текстом! Ситуация усугубляется ещё тем, что в сети просто нет руководств, как исправить эту проблему. Словно прекрасная девушка, танцующая красивый танец и громко пускающая газы при каждом новом па.
Исправим же это недоразумение!
Исправление отображения русского языка в интерфейсе GVimСначала починим отображение внутренних сообщений на русском языке (текст на экране приветствия, информационные сообщения, сообщения об ошибках).
(Великий и ужасный GVim «из коробки» при переходе на UTF-8)
Создаём файл vim.mo из utf-версии русской локализации po-файла (формат файла GNU gettext для поддержки мультиязычности). В windows для создания mo-файла я использовал свободную программу Poedit. Помещаем созданный mo-файл в папку $VIMRUNTIME/lang/ru_RU.UTF-8/LC_MESSAGES. Если у вас нет папок ru_RU.UTF-8 и LC_MESSAGES (по-умолчанию в windows-версии GVim'а их нет), создаём их. Если вам лениво создавать и править файлы, можете скачать мои: mo-файл для версии 7.4, mo-файл для версии 7.3, файл локализации меню. Вот теперь у нас есть все необходимые файлы для поддержки UTF-8.
Теперь надо разобраться с меню. Возникает резонный вопрос: почему меню не исправляется корректным mo-файлом? Всё очень просто — меню в GVim реализуется с помощью плагинов, поэтому для исправления кодировки надо исправлять рантайм-файл. Заходим в папку $VIMRUNTIME/lang, создаём дубликат файла menu_ru_ru.vim переименовываем его в menu_ru_ru.utf-8.vim и комментируем или удаляем 20-ую строку:
Внимательный читатель при поиске файла, скорее всего, заметит, что там есть некий похожий файл, а именно menu_ru.utf-8.vim (без одной «ru»). Мы его не трогаем, потому что его использует GVim по умолчанию (в Windows 7) и если его исправить то при необходимости возврата на cp1251 мы получим «кракозябры».
Дело осталось за малым: надо установить в системе переменную окружения LANG. В создании новой переменной нет ничего сложного, но на всякий случай привожу инструкцию. Заходим в настройки системы Win+Break -> дополнительные параметры системы -> Дополнительно -> Переменные среды -> Создать… Вводим имя переменной LANG, значение ru_RU.UTF-8. Если по каким-то причинам вы не можете создавать переменные окружения, тогда можно добавить несколько строк в _vimrc:
Если вы ещё не включили Unicode, самое время сделать это. Открываем _vimrc и добавляем строку set encoding=utf-8. Теперь при запуске GVIM с установленным UTF-8 все сообщения будут отображаться на нормальном русском языке.
(Великий и ужасный GVim после внесения исправлений)
Настройка переключения раскладки в GVimЗачем что-то делать с переключением раскладки и отказываться от любимого Ctrl+Shift / Alt+Shift? Ответ прост — это не удобно.
После внесения изменений при нажатии Ctrl+^ у нас будет переключаться раскладка, при этом в режиме ввода русского языка курсор будет гореть синим цветом. (За разъяснениям, что делает каждая из команд обращайтесь к статье, которая упоминалась в самом начале)
(Тюнингованный GVim в режиме ввода русского языка)
Также совсем недавно появился замечательный плагин, позволяющий упростить работу с несколькими языками.
Настройка проверки орфографии в GVimПроверка орфографии включается с помощью команды:
При первом запуске из интернета загружаются все необходимые словари, после загрузки сразу включается проверка орфографии.
Ранее для корректной проверки слов, содержащих «ё», необходимо было дополнительно устанавлить словарь ru_yo, сейчас достаточно одного ru_ru. Но после подключения ru_yo, слова в которых «ё» было заменено на «е» будут подчёркиваться синим цветом.
Отключается проверка орфографии с помощью команды:
Вуаля! Теперь можно наслаждаться полноценной поддержкой русского языка в GVim.
Надеюсь, что статья вышла простой для понимания и окажется кому-нибудь полезной.
P. S. Запостил баг о необходимости перевода windows-версии GVim с дефолтной cp1251 на utf-8, пока никаких комментариев не было; думаю, что в готовящимся Vim 7.4 UTF-8 займет своё законное место.
P. P. S. Если кому-то понравилась моя иллюстрация, можете забирать (лицензия cc-by-sa 3.0).