суббота, 12 сентября 2009 г.

emacs: правильная транслитерация

Довольно долгое время пользовался дефолтной раскладкой транслита идущей в стандартном модуле leim в имаксе, но, наконец, пересилив собственную лень взял да настроил себе точную копию привычного траснлита с www.translit.ru, плюс, немного разнообразных кавычек.


Собственно, вот (~/.emacs):

(quail-define-package "translit+" "Cyrillic" "Tr+" t
   "This keymap is equals to keymap from www.translit.ru"
   nil t t t t nil nil nil nil nil t)

(quail-define-rules
 ("a" ?а) ("A" ?А) 
 ("b" ?б) ("B" ?Б)
 ("v" ?в) ("V" ?В)
 ("g" ?г) ("G" ?Г)
 ("d" ?д) ("D" ?Д)
 ("e" ?е) ("E" ?Е)
 ("jo" ?ё) ("yo" ?ё) ("ö" ?ё) ("Jo" ?Ё) ("JO" ?Ё) ("Yo" ?Ё) ("YO" ?Ё) ("Ö" ?Ё)
 ("zh" ?ж) ("Zh" ?Ж) ("ZH" ?Ж)
 ("z" ?з) ("Z" ?З)
 ("i" ?и) ("I" ?И)
 ("j" ?й) ("J" ?Й)
 ("k" ?к) ("K" ?К)
 ("l" ?л) ("L" ?Л)
 ("m" ?м) ("M" ?М)
 ("n" ?н) ("N" ?Н)
 ("o" ?о) ("O" ?О)
 ("p" ?п) ("P" ?П)
 ("r" ?р) ("R" ?Р)
 ("s" ?с) ("S" ?С)
 ("t" ?т) ("T" ?Т)
 ("u" ?у) ("U" ?У)
 ("f" ?ф) ("F" ?Ф)
 ("h" ?х) ("x" ?х) ("H" ?Х) ("X" ?Х)
 ("c" ?ц) ("C" ?Ц)
 ("ch" ?ч) ("Ch" ?Ч) ("CH" ?Ч)
 ("sh" ?ш) ("Sh" ?Ш) ("SH" ?Ш)
 ("w" ?щ) ("shh" ?щ)  ("W" ?Щ) ("Shh" ?Щ) ("SHh" ?Щ) ("SHH" ?Щ)
 ("#" ?ъ) ("##" ?Ъ)
 ("y" ?ы) ("Y" ?Ы)
 ("'" ?ь) ("''" ?Ь)
 ("je" ?э) ("ä" ?э) ("Je" ?Э) ("JE" ?Э) ("Ä" ?Э)
 ("ju" ?ю) ("yu" ?ю) ("ü" ?ю) ("Ju" ?Ю) ("JU" ?Ю) ("Yu" ?Ю) ("YU" ?Ю) ("Ü" ?Ю)
 ("ja" ?я) ("ya" ?я) ("q" ?я) ("Ja" ?Я) ("JA" ?Я) ("Ya" ?Я) ("YA" ?Я) ("Q" ?Я)
 ;; additional
 ("/-"  ?–)  ;; EN DASH
 ("/--" ?—)  ;; EM DASH
 ("/..." ?…) ;; HORIZONTAL ELLIPSIS
 ("/,," ?„)  ;; DOUBLE LOW-9 QUOTATION MARK
 ("/," ?‚)   ;; SINGLE LOW-9 QUOTATION MARK
 ("/''" ?”)  ;; RIGHT DOUBLE QUOTATION MARK
 ("/'" ?’)   ;; RIGHT SINGLE QUOTATION MARK
 ("/``" ?“)  ;; LEFT DOUBLE QUOTATION MARK
 ("/`" ?‘)   ;; LEFT SINGLE QUOTATION MARK
 ("/<<" ?«)  ;; LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
 ("/>>" ?»)  ;; RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
 ("/&" ?§) ("/ab" ?§) ("/pa" ?§)
 ("/#" ?№) ("/no" ?№)
 ("/12" ?½)
 ("/13" ?⅓)
 ("/23" ?⅔)
 ("/14" ?¼)
 ("/34" ?¾)
 ("/c" ?©)
 ("/tm" ?™)
 ("/reg" ?®)
 ("/eu"  ?€)
 ("/ce"  ?¢)
)

(set-language-environment 'UTF-8)
(setq default-input-method "translit+")
(global-set-key (kbd "\C-x \C-y") 'user-toggle-input-method)
(defun user-toggle-input-method ()
    (interactive)
    (toggle-input-method)
    (message "keybord input method is %s" current-input-method)
)

Комментариев нет:

Отправить комментарий