Привет, коллеги! Ситуация, конечно, нечастая, но возможность в Вим предусмотрена и надо о ней знать, а уж когда пригодится, тогда и вспомним.
Вот нет у вас, допустим, латинской раскладки вообще: только русская, например. При этом Вим вы запустить как-то можете. Или латиница есть, но кривая какая-нибудь. Ну, или латиница есть, но вы не хотите на нее переходить. В самом деле: вы пишете по-русски, и зачем вам переключаться на латиницу в нормальном режиме? Неудобно.
Или у вас стоит четыре языка, кроме обычной латиницы: кириллица, иврит, греческий и еще что-нибудь. И переход на латиницу не так прост и выполнять его вы не хотите, во всяком случае, часто.
Да, вы можете настроить таблицу соответствий keymap, причем они есть готовые, так что это делается в одну команду. Тогда можно работать все время в системной латинице, а Вим в режиме вставки сам будет переводить символы латиницы в то, что вы имели в виду. Например, s в ы. Это мы уже обсуждали, причем неоднократно.
А можно и наоборот: работать все время в кириллической, скажем, раскладке. А Вим пусть переводит кириллические символы в то, что вы имеете в виду. Например, Жы в :s
Это можно. Для этого есть опция langmap.
Она содержит список отображений через запятую. Отображение может быть либо списком пар, записанных подряд, либо списком отображаемых символов и их образов, разделенных точкой с запятой. Например:
фaыsвd,йцукенг;qwertyu,zZяЯ
Сначала мы отображаем 'ф' в 'a', 'ы' в 's' и 'в' в 'd'. Потом символы йцукенг в qwertyu, соответственно; наконец, еще две пары: z в Z и я в Я.
Если вам надо отобразить запятую, точку с запятой и слеш, то экранируйте их слешем: б\,;\;$
Отображение символов будет работать в нормальном режиме, при обращении к регистрам в режиме вставки (через <C-R>), при отработке привязок (горячих клавиш) в режиме вставки.
Но оно не будет работать в режиме командной строки, что, конечно, не очень хорошо.
Полезно выставить флаг langnoremap, чтобы не ломались уже сделанные привязки.
Вот значение для русского языка:
:set langmap=ФИСВУАПРШОЛДЬТЩЗЙКЫЕГМЦЧНЯ;ABCDEFGHIJKLMNOPQRSTUVWXYZ,фисвуапршолдьтщзйкыегмцчня;abcdefghijklmnopqrstuvwxyz
Удачи, коллеги!