SyntaxHighlighter

вторник, 2 июня 2009 г.

Vim и UTF-8

Vim-ом пользуюсь уже давно, но практически никогда не использовал его для набора или редактирования русского текста. Однако такая задача, конечно же, возникла при работе с LaTeX-ом.

Выставил параметры в конфиге:
set encoding=utf-8

set keymap=russian-jcukenwin
set iskeyword=@,48-57,_,192-255

И всё бы хорошо, но я тут же наткнулся на следующую проблему:
при включении кодировки UTF-8 (:set encoding=utf-8), все выводимые вимом сообщения превращались в нечитаемые кракозябры.

Проблема была в том, что файл ru.mo содержал сообщения в кодировке cp1251, а конвертировать их Vim в UTF-8 совсем не хотел.

Как починилось:
На оффициальном сайте качаем архив с исходными файлами локализованных сообщений (*.po):

ftp://ftp.vim.org/pub/vim/extra/vim-7.2-lang.tar.gz
Что удивительно в этом архиве есть файл ru.po в кодировке UTF-8.

Всё это собираем (gettext для win32 можно взять здесь http://sourceforge.net/projects/gettext).
Заменяем файл ru.mo в директории Vim-а на только что полученный.
И работает всё, кроме сообщений в меню (обычно оно у меня скрыто).


В итоге, поставил себе сборку Vim-а от проекта Cream (Windows Vim installers without Cream). Теперь вроде всё ок.

P.S.: думаю, что проблема только в сборке под винду, сейчас в других системах проверить не могу (полетел винт).