Режимы работы Vim имеют то неудобство, что приходится переключаться на английский, переходя в основной режим. При программировании это не важно, мы и так обычно в английской раскладке, а вот при правке русского текста это раздражает. Однако Вим позволяет переключать раскладку изнутри — при этом русского языка в системе может даже вообще не быть. Я не знаю способа подключить второй язык, кроме английского, но это нечасто нужно.
Делается это командой
:set keymap=russian-jcukenwin
которую можно раз и навсегда поместить в ~/.vimrc. Потом переключаешься с английского на русский комбинацией Control+^ (которую можно повесить на что угодно при помощи map и imap). Переключение работает в режиме ставки обычным образом, а в основном режиме действует на работу с текстом (команды вроде вроде f, t, r).
Значение параметра keymap — одна из раскладок, их в поставке идет несколько. Название этой — ЙЦУКЕН Windows — как-бы намекает нам на буквы на клавишах QWERTY и на систему, в которой она популярна.
Системная раскладка у вас английская всегда, пишете вы том языке, на котором вам в данный момент надо, а выход в командный режим ничего не меняет — G отправит вас в конец документа, потому что это G, а не П.
Что касается кодировок, то они переключаются так:
:e ++enc=cp1251
:e ++enc=utf-8
:e ++enc=koi8-r и т.д.
Удобно также переключать конец строки в стиле Windows/UNIX:
:set fileformat=unix или dos
Для тех, кто не знает: в UNIX конец строки — это символ с номером 10 (0А в шестнадцатеричном коде), а в Windows (ранее в DOS) это пара символов с номерами 13 и 10. Это напоминает о печатающей машинке: сдвиг каретки влево до конца и сдвиг бумаги на одну строку вверх. Символы эти невидимые, но при переносе документов и текстов программ могут вызвать немало трудноуловимых проблем.
Чтобы не запоминать, можно это все задать один раз в ~/.vimrc , повесив в меню. Делается это так. Пусть клавиша F8 будет вызывать меню, в котором можно выбрать кодировку, а Shift+F8 будет менять кодировку насильно с потерей изменений в файле). Итак:
menu Enc.cp1251 :e ++enc=cp1251<CR>
menu Enc.utf8 :e ++enc=utf-8<CR>
menu Enc.koi8 :e ++enc=koi8-r<CR>
menu Enc.ibm866 :e ++enc=ibm866<CR>
menu Enc.iso88595 :e ++enc=iso-8859-5<CR>
menu Enc.UNIXCR :set fileformat=unix<CR>
menu Enc.DOSCR :set fileformat=dos<CR>
Это мы задали пункты меню, которое назвали Enc,а текст пунктов задан после точки. Символ <CR> на конце надо писать — это соответствует нажатию клавиши Enter. Если не укажете, придется нажимать самостоятельно.
map <F8> :emenu Enc.<Tab>
Повесим меню на клавишу — после нажатия на нее появится меню, по которому можно перемещаться клавишей табуляции.
menu Encf.cp1251 :e! ++enc=cp1251<CR>
menu Encf.utf8 :e! ++enc=utf-8<CR>
menu Encf.koi8 :e! ++enc=koi8-r<CR>
menu Encf.ibm866 :e! ++enc=ibm866<CR>
menu Encf.iso88595 :e! ++enc=iso-8859-5<CR>
map <S-F8> :emenu Encf.<Tab>
Здесь все совершненно аналогично.
Наслаждайтесь!