функция, локальная для буфера в elisp

I хотел бы переопределить существующую функцию foo , но только для определенного буфера.

(defun foo ()
  (message "Not done:("))

Я надеялся, что это подойдет:

(make-local-variable 'foo)
(fset 'foo #'(lambda () (message "Done!")))

Но это не так. Есть идеи?

[РЕДАКТИРОВАТЬ: В качестве альтернативы, поскольку функция ограничена ключом, было бы достаточно изменить привязку только для текущего буфера. Но я не Я не знаю, как это сделать. Локальная раскладка клавиатуры используется всеми буферами в основном режиме. При ее изменении изменяются привязки во всех буферах в этом основном режиме.

Единственное уродливое решение, которое я могу придумать, - это - установить текстовое свойство раскладки для всего буфера. Это единственный способ продолжить?]

12
задан VitoshKa 4 November 2011 в 13:09
поделиться