我想临时覆盖 kill-new 函数。我有一种方法来重新实现 kill-new 函数,只在某些情况下起作用,但我不想在此基础上重新实现一个特殊版本的 kill-region(kill-new 从 kill-region 调用)。
由于 Emacs Lisp 使用动态作用域,这应该是可能的,对吗?(另一方面,支持这个功能似乎是不安全的,知道它是可能的可能会让我有点紧张......)
我已经尝试过使用 let 和 fset,但到目前为止还没有找到使其按预期工作的方法。因此,希望有人能填写以下伪代码中的空白部分:
由于 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))))
一些绑定函数的表单应该是什么样子?还是说我方向错了?