Hi.

А как ныне (последний когда-то пробегавший по анстейблу
emacs-snapshot) модно локально переопределять клавиши для конкретного
режима?

Задача. В техе неразрывный пробел вводится неудобно -- тильдой,
которой нет в русской раскладке. Издревле у меня сидело
переопределение сочетания meta-space (я в курсе, что оно вообще в
емаксе значимо, но в тех-моде я им никогда не пользовался) на тильду,
и все было нормально. Сейчас вдруг обнаружил, что мой старый код не
работает:

(add-hook 'tex-mode-hook
          '(lambda ()
             (local-set-key [?\M- ] '(lambda ()
                          "Inserts TeX non-breaking space"
                          (interactive)
                          (insert "~")
                          )
               )
           )

Точнее, он отрабатывает без ошибок, но толку с него нуль. eval-region
на фрагмент внутри лямбды проходит правильно -- клавиша
переопределяется. Ковыряние в нутрях показало, что tex-mode-hook ныне
вообще отсутствует, попытка изменить на latex-mode-hook (в голом техе
я все равно практически не работаю) не привела ни к чему. Хелп дает
пример:

     (add-hook 'texinfo-mode-hook
               '(lambda ()
                  (define-key texinfo-mode-map "\C-cp"
                              'backward-paragraph)
                  (define-key texinfo-mode-map "\C-cn"
                              'forward-paragraph)))

Изменение этого примера под мои значения проходит с тем же
успехом. Все работает, ничего не ругается, ничего не отрабатывает.

Вопрос 1. Как это нужно делать сейчас?

Вопрос 2. А нужно ли это делать? Глобальная задача -- вводить тильду
(или, тем более,   в хтмл-сгмл) вне зависимости от раскладки, но
именно локально -- в техе тильду, в сгмл нбсп, еще в некоторых режимах
еще некоторые прелести. Возможно, у нее есть какое-то более элегантное
решение (кроме переопределения раскладки, которое сработает под тех,
но не сработает в более сложных случаях)?

-- 
Alex Kicelew <[EMAIL PROTECTED]> ICQ 3887592


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

Ответить