当条件满足时,如何建议不执行该功能?
问题描述:
如何在建议返回nil时阻止建议的函数运行?当条件满足时,如何建议不执行该功能?
(defadvice beginning-of-line (before test activate)
nil)
- >根本没有运行beginning-of-line
。
编辑:只是为了带走你的后顾之忧,我不打算在beginning-of-line
上使用它。
答
您可以使用around
建议,如:
(defadvice foo (around test activate)
(if my-test
ad-do-it))
将构建ad-do-it
相当于运行原来的功能。
这对'cond'不起作用。事实上,周围似乎造成了麻烦。在这种情况下,它运行建议,找出它应该运行的功能,但它然后再次建议! – PascalVKooten 2013-02-19 12:17:42
这听起来不对!你确定你的旧建议还没有活动吗? – Lindydancer 2013-02-19 12:19:28
我绝对确定:关闭并重新打开emacs。 – PascalVKooten 2013-02-19 12:20:03