Найти тему
Блокнот математика

Рубрика "Секреты Вим". Вим и иврит

С Ханукой, друзья! Сегодня вдвойне специфический выпуск: про Вим, который знают немногие, и еще про иврит, который знают тоже не все. Отпишитесь в комментариях, чтобы я знал того или ту, с кем мы на одной волне!

Все сказанное, кроме раскладки, относится к арабскому и фарси. Хотя у них своя специфика, о которой расскажу отдельно.
Вверху окно справки, в котором можно ознакомиться с клавишами и привязками. Видны привязки для никудот. Так, U поставит значок кубуц, сам по себе или под предыдущей (справа) буквой. Внизу окно, в котором я ввел несколько слов. Что не нравится: большой пробел перед вав и нун софит. Но это особенность моноширинного шрифта.
Вверху окно справки, в котором можно ознакомиться с клавишами и привязками. Видны привязки для никудот. Так, U поставит значок кубуц, сам по себе или под предыдущей (справа) буквой. Внизу окно, в котором я ввел несколько слов. Что не нравится: большой пробел перед вав и нун софит. Но это особенность моноширинного шрифта.

Начнем с полумер. Если Вам не надо вводить на иврите текст, да еще огласованный, а просто хочется вставить несколько букв или слов, то есть диграфы. Нажмите <C-K>, затем заглавную букву, затем символ "плюс". Например, <C-K>A+ даст א. Строчные буквы с плюсом для арабских, звездочка для греческих. Если вам нужна одна-две буквы (алеф используется в математике, например), то повесьте на клавишу через imap:

:imap <C-A> <C-K>A+

Теперь всерьез. Вим обладает системой keymap, позволяющей переключать раскладку через <C-^> в обход системы. Это удобно, чтобы в основном режиме не переключаться. Для иврита есть целых две раскладки: фонетическая, когда буквы иврита расположены на латинских аналогах, и своя, "родная". Выбор за вами! Для тех, кому иврит не родной (и клавиатура без букв иврита на клавишах), лучше, как мне кажется, фонетическая. Команды, которые можно повесить на горячую клавишу или меню или внести в .vimrc, такие:

:keymap hebrewp
:keymap hebrew

Первая фонетическая, вторая оригинальная. В фонетической раскладке софиты (конечные буквы) присвоены тем же клавишам, что и обычные, но в заглавном варианте. Так, m даст מ, а M даст ם.

Чтобы набирать текст справа налево, необходимо выставить флаг rightleft:

:set rl

Флаг в каждом окне свой, так что можно параллельно работать с двумя и более языками. Отключается как любой флаг:

:set norl

Двунаправленности Вим не имеет, смешивать два языка в одном тексте будет тяжело. Можно открыть один и тот же файл в двух окнах, в одном выставить флаг, в другом нет.

При вставке, будь то системная или вимовская, обычного левоправого текста он будет развернут. Осторожно! Только если вы копируете текст из праволевого окна в то же или другое праволевое, все будет нормально.

Числа придется вводить задом наперед. И инкремент работает неправильно.

Переменная rightleftcmd позволяет, при включенном rightleft, вводить команды поиска справа. Там строка, но вариант пока один: search, и он по умолчанию.

Есть другой вариант: флаг revins. Выставьте его, и режим вставки будет работать наоборот: набираемый текст будет отползать вправо, а курсор оставаться на месте. Это работает с любыми символами, но уместно как раз для иврита. Но это полумера: курсор слева, режима замены такого нет...

(Есть и еще одно дополнительное удобство, но объявленное устаревшим. Если выставлен флаг allowrevins, то сочетание <C-_> переключает направление ввода (ставит или сбрасывает revins) и переключает раскладку для языка с таким направлением письма. Если стоит флаг hkmap, то это иврит, а если еще и флаг hkmapp, то фонетическая раскладка. Есть флаги для фарси, а у арабского этой штуки изначально не было. Но о них в другой раз. Заодно перемещает курсор к концу набираемого текста.

Эта фича сильно облегчает ввод двуязычного текста. Правда, у меня системное окно перехватывает эту комбинацию (это уменьшение шрифта), но можно переопределить:

:imap QQ <C-_>

Однако, hkmap плохо работает с utf8 и это большой недостаток. Поэтому лучше его не использовать вообще.)

Теперь вещи более тонкие. Если выставлен флаг delcombine и кодировка юникодная, то команда x удаляет огласовки, если есть, а только повторная команда удалит сам символ.

Есть ряд привязок для иврита, которые включаются вместе с раскладкой. Они позволяют вводить огласовки и другие значки. Так, A: вводит шва. Вот этот символ: שְ получен нажатием, последовательно, wA: Как нетрудно догадаться, w в фонетической раскладке соответствует шин: тут не фонетика, а чисто визуальное сходство. И помните, что надо вводить пару A: быстро, не делая паузы. Если медленно, то введете просто А:

Есть все огласовки, включая дагеш и точки над шин и син, символы "двойной вав" װ и другие. Смотрите

:help keymap-hebrew

Есть значки, о которых я и не слыхивал. А еще есть, помимо огласовок "отдельно", которые клеятся к букве, огласованные буквы "в сборе". Не все варианты, конечно. Например, алеф патах אַ вводится XA.

Вот такое можно ввести. И огласовки, и русские ударения.
Вот такое можно ввести. И огласовки, и русские ударения.

Удачи, друзья!

Оглавление рубрики

Навигатор по каналу