Comments 14
Отличный текст, спасибо.
А в качестве справочника весьма неплоха книга Practical Vim.
И за 30 лет существования они так и не решили проблему переключения раскладок. Приходится решать её костылями разной степени кривости.

Я думал что Neovim, позиционирующий себя как vim в котором исправлены все старые проблемы решил эту проблему, но нет. Там ещё хуже — привычные костыли от Vim там не работают, надо ставить другие, с которыми раньше дела не имел.
Мне хватает этого:

" change keyboard layout in Vim with <Ctrl+^>
" by default no translate layout in Search mode
" by default no translate layout in Insert mode
" See also :h 'langmap'
set keymap=russian-jcukenwin iminsert=0 imsearch=0

Хотя я набираю только на русском и английском. Думаю, добавить греческий будет проблематично.
Обоженьки, линуксоиды и так все время для копипасты должны разные сочетания нажимать: в DE обычные Ctrl+C/V работают, а в консоли то еще Shift надо поджимать, или Ctrl+Ins/Shif+Ins использовать.

Теперь оказывается, что в VIM надо особыми сочетаниями раскладку переключать?

Безумие какое-то.
Линукс — это когда нужно все настривать под себя. Если не хочется менять раскладки отдельной комбинацией, то ставим пакет в ОС xkb-switch, плагин для Vim github.com/lyokha/vim-xkbswitch и настраиваем его в ~/.vimrc:

let g:XkbSwitchEnabled = 1
let g:XkbSwitchNLayout = 'us'
set ttimeoutlen=50

Раскладки переключаются привычной комбинацией ОС, а при переходе в Normal Mode принудительно включается английская. Если раскладка будет переключена во время работы с окном другого приложения, Vim этого не заметит. Чтобы не включать английскую раскладку вручную, добавим:

set langmap=ФИСВУАПРШОЛДЬТЩЗЙКЫЕГМЦЧНЯЖ;ABCDEFGHIJKLMNOPQRSTUVWXYZ:,фисвуапршолдьтщзйкыегмцчня;abcdefghijklmnopqrstuvwxyz
> Раскладки переключаются привычной комбинацией ОС, а при переходе в Normal Mode принудительно включается английская.

А при выходе из Normal Mode вспомнится, какая раскладка была?

> Чтобы не включать английскую раскладку вручную, добавим:
> set langmap=ФИСВУАПРШОЛДЬТЩЗЙКЫЕГМЦЧНЯЖ;…

Вы не раскладку тут меняете, а подменяете символы. Это вообще жесть.
Выход из Normal Mode это вход в Insert Mode? Да, вспоминается. Костыль с подменой символов на случай, если раскладка была переключена во время работы с окном другого приложения, не Vim.

За 10 лет работы с vim только из этого комментария узнал что там проблемы с расскладками.
Думал может я просто русский никогда не использовал, проверил. Нет работает.


Хотя может и не все работает. Но серьезно, кому нужен русский для работы с vim?

А что именно у вас работает на русском? И под какой системой?
Я попробовал у себя ещё раз. gVim 8.2 под Windows — в русской раскладке нормальный режим не работает.
Я использую vim для редактирования текстов, в том числе и на русском, это очень удобно. Для исходников есть IDE — они гораздо удобней чем vim за счет интегрированных в них инструментов.
Очень огорчили этим:
Редактирование и компиляция цикла
Ну как так? Ну почему? В оригинале даже стрелочки есть: Цикл редактирование ⇄ компиляция
Only those users with full accounts are able to leave comments. Log in, please.
Information
Founded

7 May 1999

Location

Россия

Website

miran.ru

Employees

51–100 employees

Registered

5 July 2017