Русская раскладка для Mac-клавиатуры в Emacs
Последний месяц моим основным редактором является Emacs. Использую его активно и постоянно.
Для переключения раскладок клавиатуры используется встроенное средство, и для русского языка представлены несколько различных раскладок клавиатуры:
- cyrillic-jis-russian
- russian-computer
- cyrillic-jcuken
- russian-typewriter
Обычно использовал второй вариант, russian-computer, который соответствует стандартной PC-клавиатуре. Проблема заключается в том, что уже много лет использую Mac, раскладка клавиатуры которого отличается от стандартной. В результате когда работаешь в других программах, у тебя используется одна раскладка, а когда переключаешься в Emacs на русский язык, совершенно другая. Начинаешь допускать ошибки, пока ментально не переключишься на новую раскладку. Но проходит время и все повторяется вновь.
Используемая раскладка для russian-computer:
1! 2" 3№ 4; 5% 6: 7? 8* 9( 0) -_ =+ \/ ёЁ
Й Ц У К Е Н Г Ш Щ З Х Ъ
Ф Ы В А П Р О Л Д Ж Э
Я Ч С М И Т Ь Б Ю .,
Раскладки для Mac-клавиатуры я так и не нашел, потому решил создать свою. Результат представлен в репозитории juev/russian-mac . Использовать просто, достаточно разместить файл russian-mac.el в load-path и загрузить его:
(load-file "~/.emacs.d/russian-mac.el")
(set-input-method "russian-mac")
Либо, если вы используете straigth:
(use-package russian-mac
:straight (:host github :repo "juev/russian-mac")
:config
(setq-default default-input-method "russian-mac"))
Данный кусочек кода загрузит модуль и установит новую раскладку клавиатуры, которая будет выглядеть так:
1! 2" 3№ 4% 5: 6, 7. 8; 9( 0) -_ =+
Й Ц У К Е Н Г Ш Щ З Х Ъ
Ф Ы В А П Р О Л Д Ж Э ёЁ
Я Ч С М И Т Ь Б Ю /?
Сначала возникла мысль отправить патч разработчикам Emacs, но потом передумал. Людей, использующих Emacs в работе мало, а тех кто им пользуется с Mac-клавиатурой еще меньше. И судя по тому, что никто не задавался этим вопросом, не так актуален вопрос. В результате решил оставить пакет в виде стороннего решения. Буду рад, если это немного облегчит вашу жизнь.