LINUX.ORG.RU

emacs


0

0

Как узнать, какой hook и map использовать, чтобы поменять кейбиндинг в определенной major-mode? Я никак не пойму, как поменять поведение C-d в c-mode.


>Я никак не пойму, как поменять поведение C-d в c-mode.

(define-key c-mode-map "\C-d" 'my-command)

madepa
()

Заглянуть в описание или в определение этого major-mode.

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

Как-нибудь обходиться без замыканий. Да, так и живём..

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

lexical-let из пакета cl-macs

Для какой задачи понадобились замыкания?
может быть проще воспользоваться штатными средствами?
Например функции:
make-local-variable
make-variable-buffer-local

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

Спасибо, уже нашел.
Замыкание должно было использоваться в в хуке на загрузку соответствуещего режима.
Хук из которого можно менять биндинги в c-mode - c-initialization-hook.
Кстати никто не замечал, что labels как-то странно глючат?
Точнее `(...) раскрываются слишком рано.

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

Извини за настойчивость но у меня остался вопрос
зачем closure в хуке - коде который выполняется один раз за сессию?
(я говорю про c-initialization-hook. ведь именно там нужно настраивать биндинги)

про key-translation-map:
Все свои постоянные биндинги я скинул на C-h map
(а хелп скинул на C-q)
Это удобно - в двораке h это j на qwerty, т.е. нажимается
указательным пальцем правой руки.
И я знаю что мои биндинги никогда не перекроет ни
емакс ни какой-либо из его плагинов.
Для пользователей оставили C-c map, но туда добавляют свои биндинги все кому не лень.

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

ну так хук то ставит макрос. без замыкания нужно дублировать код.

alex4
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.