Привет, коллеги. Недавно мы обсудили "экзотические" письменности, условно "восточные". Теперь я расскажу, какие раскладки в Вим вообще есть, просто чтоб вы знали, что они есть. Вдруг пригодятся.
Если кто-то пока не в курсе, как работают раскладки Вим. В редакторе есть технология keymap, задающая сразу много привязок, отображающих символы на клавиатуре (или пары-тройки-четверки символов) на символы какого-то алфавита.
Например, нажатие клавиши z в режиме вставки или замены (но не в нормальном!) вводит символ "я", если раскладка включена русская ЙЦУКЕН и включен режим "второй язык".
Всё это мы детально обсуждали. Раскладка хранится в файле, для системных предназначена папка $VIMRUNTIME/keymap, для пользовательких ~/.vim/keymap
Задается раскладки указанием файла с ней в опции keymap. Это делается обычно один раз в .vimrc, ну или вручную, если вам надо много языков. Переключение на раскладку осуществляет комбинация <C-^>,обычно совпадающая с <C-6>. В итоге в режиме вставки у вас есть базовая латиница (английский) и второй язык, например русский. Независимо от системы! В нормальном режиме у вас всегда английский и все команды работают как надо. Системно никогда на русский переключаться не приходится.
Отдельно можно включать вторую раскладку в командной строке или строке поиска.
Я знаю, что многие европейцы, системная раскладка которых в целом совпадает с QWERTY, в ней не нуждаются. У итальянцев, скажем, нет в системе английского языка: их раскладка перекрывает потребности. Это объясняет, почему нет специальной итальянской-финской-норвежской. Зато такие раскладки пригодились бы изучающим эти языки...
В новых версиях раскладок может стать больше, я пишу про версию 8.2
Пишу в алфавитном порядке, только русский обсудим чуть детальнее и в конце заметки.
accents - раскладка с латиницей и всевозможной диакритикой. Полезна для итальянского/испанского/португальского и других европейских языков на базе обычной латиницы.
armenian-eastern_utf-8 и armenian-western_utf-8 - армянский, о котором я упоминал отдельно. Письменность своя, не латиница и не кириллица, но и к восточным не отнесешь.
belarusian-jcuken - белорусская раскладка ЙЦУКЕН, отличается от русской наличием некоторых букв (Ў) и отсутствием некоторых других букв (Щ).
bulgarian-bds и bulgarian-phonetic - болгарский язык, традиционная раскладка и фонетическая. Последняя содержит русские буквы (те, которые не вошли в болгарский алфавит) и ряд значков вроде №, §, …, «, », •, ·, ±, °, ‰ и модификаторов для постановки ударений. Этим она превосходит русскую раскладку, о которой далее.
canfr-win - канадская мультиязычная раскладка. Переопределяет некоторые неалфавитные символы и вводит ряд диграфов для букв с диакритикой.
croatian - хорватский язык. Несколько раскладок для разных кодировок, используйте базовую, она разберется. Это же касается некоторых других языков, для которых предусмотрены раскладки на разные кодировки. Сейчас везде utf8, так что в принципе проблема ушла в прошлое.
czech - чешский.
dvorak - раскладка Дворака. Есть и специальный плагин, позволяющий легче переключаться с обычного ввода на Дворака и обратно. Дворак есть еще для русского и украинского.
esperanto - раскладка для эсперанто. Символы с диакритикой можно вводить традиционным для эсперанто способом, через символ x. Например, Ĉ можно ввести как через ^C, так и через Cx или CX.
french-azerty - французская AZERTY.
german-qwertz - немецкая QWERTZ
greek - греческий язык, я о нем подробно рассказывал. Тоже свой алфавит, но в обзор восточных не попал.
kazakh-jcuken - казахская кириллица. Содержит много букв, которых нет в русском.
lithuanian-baltic - литовская раскладка; добавляет к латинице девять специфичных букв.
magyar_utf-8 - венгерская раскладка. Добавляет немного букв с диакритикой и перемещает некоторые вспомогательные символы.
polish-slash - польский. Добавляет немного диакритики, но не так, как у венгров!
serbian - сербская кириллица.
slovak - словакская латиница с комментариями на словацком.
ukrainian-dvorak и ukrainian-jcuken - украинские раскладки.
Почему-то нет скандинавов. Финны ладно, у них немного диакритики и accents сойдет, а шведы-норвеги, а исландцы?
Русский язык представлен несколькими раскладками:
russian-dvorak,
russian-jcuken,
russian-jcukenmac,
russian-jcukenwin,
russian-jcukenwintype,
russian-typograph,
russian-yawerty.
Самая распространенная - ЙЦУКЕН, их четыре варианта. Дворак полезен, если умеете им пользоваться. Остальное - на любителя.
ЯВЕРТЫ - фонетическая, то есть русские буквы назначены на те клавиши, латинские символы которых наиболее близки по звучанию, либо на те, которые русской фонетике не пригодились. Например, буква Я назначена клавише Q, буква В - клавише W, буква Ж - клавише V, ,буква Й - клавише J.
Типографская описывается так:
Раскладка сделана на основе раскладки «русская машинопись», поставляемой в составе ОС MS Windows. Эта раскладка позволяет печать практически все знаки препинания используя цифровой ряд и не требуя при этом нажатия дополнительных клавиш, ну и также удобное расположение буквы «Ё». Однако были внесены некоторые дополнения (улучшения?), в частности:
‐ раздельные символы круглых скобок (), расположены на тех же позициях, что и в US-International;
‐ раздельные символы типографских кавычек «», расположены на клавишах «3» и «4» соответственно;
‐ на этих же клавишах находятся внутренние кавычки “лапки”, набираемые при нажатой клавише «ALT»;
‐ возможность набирать символы, отсутствующие в русской раскладке клавиатуры, а именно @#$^&*{}[]"'`~<>, которые расположены на тех же местах, что и раньше. Для этого не требуется переключаться в латинскую раскладку клавиатуры, а оставаясь в русской, использовать для этого дополнительные клавиши «SHIFT» и «ALT»;
‐ и ещё несколько удобств, которые позволяют быстро и с минимальными усилиями набирать текст.
Wintype - вариант ЙЦУКЕН "как на пишущей машинке". Цифры, например, с shift, а без него - знаки препинания.
jcuken-mac - вариант раскладки Макинтошей.
jcukenwin и jcuken различаются только символами первого ряда, где цифры. Например, в win-варианте запятая там, где слеш /, а в классической - где крышечка ^, над шестеркой.
Удачи, коллеги!