Я хотел бы переопределить существующую функцию foo
, но только для конкретного буфера.буфер-локальная функция в elisp
(defun foo()
(message "Not done:("))
я прыгал это будет делать:
(make-local-variable 'foo)
(fset 'foo #'(lambda() (message "Done!")))
Но это не так. Любые идеи?
[EDIT: В качестве альтернативы, поскольку функция ограничена ключом, было бы достаточно изменить привязку только для текущего буфера. Но я не понимаю, как это сделать. Локальная раскладка разделяется всеми буферами в основном режиме. Изменение этого параметра изменяет привязки во всех буферах с помощью этого основного режима.
Единственное уродливое решение, о котором я могу думать, это установить текстовое свойство keymap для всего буфера. Это единственный способ продолжить?]
В чем проблема, которую вы на самом деле пытаетесь решить? Возможно, есть другой подход, который будет работать лучше. Откуда вы знаете, когда хотите «Готово!» и «Не сделано :(»? –
@Trey В режиме справки пакета есть функция навигации (переход к разделам). Он короткий и элегантный. Но для одного очень конкретного типа файла справки мне нужно другое поведение. функция в функции, которую я надеялся переопределить локально. Ответ на этот вопрос делает то, что я хочу на самом деле. – VitoshKa