LINUX.ORG.RU

elisp: register-input-method


0

0

Хочу создать новый input-method.

leim/leim-list.el содержит регистрацию input-method -ов вот в таком виде:

(register-input-method
"cyr-test" "Cyrillic" 'quail-use-package
"CTTC" "Intuitively transliterated keyboard layout++."
"quail/cyrillic")


В leim/quail/cyrillic.el определяются пакеты и правила трансляции:

(quail-define-package
"cyr-test" "Cyrillic" "CTTC" t
"Comment"
nil t t t t nil nil nil nil nil t
)

(quail-define-rules
("a" ?а) ("b" ?б) ("v" ?в) ("g" ?г) ("d" ?д)
)

Собственно, это минимальный (предполагаемо-рабочий) для показа здесь, добавляемый мною вариант.

~/.emacs:

(set-language-environment 'UTF-8)
(setq default-input-method "cyr-test")

При вызове переключения input-method:

"No Quail package `cyr-test'"

Не могу найти косяк сам, помогите.


p.s. Как-то криво они сделали: вызов quail-define-package, пакет становится "текущим", потом вызов quail-define-rules. Что в одной функции нельзя сделать-то было, без "разрыва"...

★★★

Ты хочешь сделать свою раскладку клавиатуры или нечто более сложное?

vasily_pupkin ★★★★★
()

leim/quail/cyrillic.el

А ты что, в исходниках emacs правил все? А зачем? В .emacs пропиши все, и будет нормально. Я сейчас проверил — все работает, что ты написал. В .emacs:

(quail-define-package "cyr-test" "Cyrillic" "CTTC" t "Comment" 
		      nil t t t t nil nil nil nil nil t) 

(quail-define-rules
 ("a" ?а) ("b" ?б) ("v" ?в) ("g" ?г) ("d" ?д)) 

(setq default-input-method "cyr-test")

Zubok ★★★★★
()
Ответ на: комментарий от Zubok

Во, блин. Я пытался заставить это работать, подумать как сделать правку не затрагивая существующие исходники, планировал потом. :-) Сеньк. А в исходники полез потому, что задался вопросом, как раскладку подправить, ну, и нашёл как оно сделано, решил подправить там немного...

2vasily_pupkin: да, просто хочу свою раскладку сделать.

eRazor ★★★
() автор топика
Ответ на: комментарий от eRazor

У меня так: в основном загружаемом .el:
(register-input-method "cyrillic-n810-ru" "Russian" 'quail-use-package "RU" "n810 ЙУКЕН variant" "layout-n810-ru")

в layout-n810-ru.el:

(require 'quail)

(quail-define-package "cyrillic-n810-ru" "Cyrillic" "RU" nil "n810 ЙУКЕН variant" nil t t t t nil nil nil nil nil t)

(quail-define-rules ("Z" ?Я) ....... )

vasily_pupkin ★★★★★
()
Ответ на: комментарий от eRazor

А в исходники полез потому, что задался вопросом, как раскладку подправить, ну, и нашёл как оно сделано, решил подправить там немного...

Ну если чуть подправит, то, может быть, и не стоит новую создавать? Может, ту, что есть подрихтовать? Все же переделывать наверняка не надо.

(load "quail/cyrillic")
(quail-defrule "m" ["эм"] "cyrillic-translit")
(quail-defrule "zh" ["жо"] "cyrillic-translit")
Zubok ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.