【发布时间】:2021-11-20 02:40:52
【问题描述】:
假设我有如下函数:
(defun my/test-a (n)
(interactive)
(message n))
(defun my/test-b ()
(interactive)
(sleep-for .5)
(message "Message - B.")
(sleep-for .5))
然后我建议 my/test-a 使用 mytest-b,如下所示:(advice-add 'my/test-a :after #'my/test-b)。
但是,当我调用 (my/test-a "Message - A.") 时,我收到“参数数量错误”错误。我的理解是 add-advice 将参数输入到 my/test-b 中,它不期望任何参数。
如何建议将不带参数的函数添加到带参数的函数中?
我可以改变 my/test-b 让它接受一个参数并且不使用它,但这感觉很混乱。
相关跟进 - 我如何建议 find-file 使用没有参数的函数(如 my/test-b)?我知道 find-file 是一个不寻常的情况,因为如果以交互方式调用它不需要参数。但是如果我运行 (advice-add 'find-file :after #'my/test-b) 然后 (call-interactively 'find-file) 我再次收到“错误数量的参数”错误。
TIA。
【问题讨论】:
标签: elisp