Skip to content

Instantly share code, notes, and snippets.

@bravosierrasierra
Created May 26, 2017 07:02
Show Gist options
  • Save bravosierrasierra/e6b220fa5073762cd31ce1c89035a511 to your computer and use it in GitHub Desktop.
Save bravosierrasierra/e6b220fa5073762cd31ce1c89035a511 to your computer and use it in GitHub Desktop.
;; add missing ; on mac layout via H-8
(define-key key-translation-map (kbd "H-8") (kbd ";"))
(quail-define-package
"russian-no-windows" "Russian" "RU" nil
"ЙЦУКЕН Russian computer layout"
nil t t t t nil nil nil nil nil t)
;; 1! 2" 3№ 4% 5: 6, 7. 8; 9( 0) -_ =+ \/ ёЁ
;; Й Ц У К Е Н Г Ш Щ З Х Ъ
;; Ф Ы В А П Р О Л Д Ж Э
;; Я Ч С М И Т Ь Б Ю /?
(quail-define-rules
("±" ?<)
("§" ?>)
("1" ?1)
("2" ?2)
("3" ?3)
("4" ?4)
("5" ?5)
("6" ?6)
("7" ?7)
("8" ?8)
("9" ?9)
("0" ?0)
("-" ?-)
("=" ?=)
("|" )
("`" ?`)
("q" )
("w" )
("e" )
("r" )
("t" )
("y" )
("u" )
("i" )
("o" )
("p" )
("[" )
("]" )
("a" )
("s" )
("d" )
("f" )
("g" ?п)
("h" )
("j" )
("k" )
("l" )
(";" )
("'" )
("\\" ?\ё)
("z" )
("x" )
("c" )
("v" )
("b" )
("n" )
("m" )
("," )
("." )
("/" ?/)
("!" ?!)
("@" ?\")
("#" ?№)
("$" ?\%)
("%" ?:)
("^" ?,)
("&" ?.)
;; ("*" ?\;)
("*" ?*)
("(" ?()
(")" ?))
("_" ?_)
("+" ?+)
("~" ?~)
("Q" )
("W" )
("E" )
("R" )
("T" )
("Y" )
("U" )
("I" )
("O" )
("P" )
("{" )
("}" )
("A" )
("S" )
("D" )
("F" )
("G" )
("H" )
("J" )
("K" )
("L" )
(":" )
("\"" )
("|" )
("Z" )
("X" )
("C" )
("V" )
("B" )
("N" )
("M" )
("<" )
(">" )
("?" ??))
;; Local Variables:
;; coding: utf-8
;; End:
;;; russian-nowinkeys.el ends here
(provide 'russian-no-windows)
@bravosierrasierra
Copy link
Author

bravosierrasierra commented Oct 3, 2017

я переключаюсь встроенной по Alt-Space при включенном punto switcher, который умеет игнорировать Emacs. Таким образом у меня во всей системе единая клавиша переключения раскладки и при этом в emacs & evil-mode русский язык работает прозрачно и без каких-либо побочных эффектов. Без этого русский и vim-режимы просто боль.

Punto у меня и под mac и под windows работает. Везде Meta-space (винда alt-space, mac cmd-space). Переключалка настроена в punto switcher. Также в punto switcher Emacs добавлен в список программ-исключений, для которых punto switcher ничего не делает. В самом emacs у меня вот такое:

; russian-no-windows: раскладка на маке, кладётся в ~/.emacs.d/manual-addons, берётся тут:   https://gist.github.com/bravosierrasierra/e6b220fa5073762cd31ce1c89035a511
(add-to-list 'load-path "~/.emacs.d/manual-addons")

;; !!! это надо делать в конце файла, иначе модули перетирают настройки метода ввода
(if (eq system-type 'darwin)
    (setq russian-input-method "russian-no-windows")
  (setq russian-input-method "russian-computer"))
(setq-default default-input-method russian-input-method)
(setq default-input-method russian-input-method)
(set-input-method russian-input-method)

(global-set-key (kbd "M-SPC") 'toggle-input-method)
(define-key isearch-mode-map (kbd "M-SPC") 'toggle-input-method)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment