Я бы хотел временно переопределить функцию kill-new . У меня есть способ, которым я хочу переопределить kill-new, который работает только в определенных контекстах, но я не хочу переопределять специальную версию kill-region поверх этого. (kill-new вызывается из kill-region)
Поскольку в Emacs Lisp используется динамическая область видимости, это должно быть возможно, верно? (С другой стороны, кажется, что это небезопасно поддерживать, и это может заставить меня немного нервничать, зная, что это возможно ...)
Я экспериментировал с использованием let и fset, но пока не нашел способа заставить его работать так, как ожидалось. Так что, надеюсь, кто-то может заполнить пробел в следующем псевдокоде:
(defun my-kill-new (string &optional replace yank-handler)
(message "in my-kill-new!"))
(defun foo ()
(some-form-that-binds-a-function (kill-new my-kill-new)
(kill-region (point) (mark))))
Какой должна быть какая-то форма, которая связывает функцию ? Или я лаю не на том дереве?