Привет, коллеги. Кое-кто из нас использует алфавит не на латинской основе, а кое-кто к тому же хочет вставлять в текст всякое или писать на других языках, со своими буквами или даже алфавитами. Что нам предлагает Вим в этом вопросе?
Оставим в стороне азиатские языки (иероглифику и хангыль): Вим в терминале имеет очень ограниченную поддержку, а gvim (графический, оконный вариант) в область наших интересов (пока) не входит. Однако Справка детально описывает необходимые средства, которые необходимо использовать, чтобы набирать текст на этих языках (см. help mbyte). Нам и алфавитных с внеалфавитными символов хватит, там тоже много интересного.
Один способ набирать текст на языке, отличном от английского — это локаль. Она выставляется в системе, у всех по-разному, но обычно всё уже сделано как надо. Вы можете включить русский (или какой у вас там) язык системно и печатать на нем. Это неудобно, так как в основном режиме придется переключаться на латиницу, но всё-таки.
Второй способ годится, если вам надо вставить одиночный символ: по коду. Нажмите в режиме вставки <C-V>, затем u или U, затем шестнадцатеричный код символа. Если u, то можно ввести до четырех цифр (два байта), если U то до восьми (4 байта, покрывает всю UTF8). Если "уже всё", то надо ввести нечисловой (в шестнадцатеричном смысле) символ. Либо начинать с нулей. Например, 🐪 вводится через код 1f42a, то есть либо вводим <C-V>U0001f42a, либо <C-V>U1f42a и завершаем ввод пробелом или чем-то в этом роде.
Коды символов найти не проблема.
Третий способ — это диграфы. Их много, и можно вводить свои. Таблица диграфов: digraphs. Способ ввода: в режиме вставки <C-K>, затем пара символов. Если выставить флаг digraph, то есть способ короче: символ <BS> символ. Возможность стирать текст справа налево потеряете, зато ßβε₍τи символы становится довольно легко. Хотя писать тексты на иврите, греческом или даже итальянском таким методом — сложновато. Вставить символ/слово/фразу разве что... Пары символов обычно довольно интуитивны: ss=ß, b*=β, A+=א, In=∫, 00=∞, 22=², 4S=⁴, M-=— и в все таком роде. Вы можете повесить часто используемые диаграфы на клавишу или последовательность. Так, я сделал
imap -- —
imap 22 ²
imap 33 ³
Не забываем, что если ввести 33 медленно, с паузой, то привязка не сработает. Так что число 33 мне доступно тоже.
Если вы пишете книги про карточные игры, то можно сделать так:
imap c1 ♣
imap d1 ♢
imap h1 ♡
imap s1 ♠
Диграфы не сильно сложнее: cC, cD, cH, cS.
Можно создать меню, повесить на клавишу и выбирать, скажем, греческие и математические символы оттуда. Много не влезет, но небольшую подборочку можно сделать. Пример:
set wildmenu
set wcm=<Tab>
menu greek.α a^Ka*
enu greek.β a^Kb*
menu greek.γ a^Kg*
menu greek.π a^Kp*
menu greek.ω a^Kw*
menu greek.Ω a^KW*
map <S-F9> :emenu greek.<Tab>
imap <S-F9> <ESC>:emenu greek.<Tab>
Меню названо greek. Пункты греческими буквами и поименованы. Команды начинаются с a (вход в режим вставки), затем литерально вставлен символ <C-K> (через <C-K> три раза), затем диграф в виде буква-звездочка (такие все греческие диграфы). Потом мы навешиваем меню на клавишу Shift+F9, в нормальном режиме и в режиме вставки. Во втором случае из него сначала выходим. Выбор пункта осуществляем клавишей табуляции и через ввод.
Четвертый способ — это таблица символов. О них уже был материал, а подробнее через неделю. Это основной способ ввода текста на языке с нелатинским алфавитом или с алфавитом на базе латиницы, но с диакритикой и своими буквами.