我想在org-agenda加载的时候,去处理org-agenda-files 因为我配置文件给它设置的是一个 directory, 但是它处理不了sub-directory,递归不了。 子文件夹下面的org文件就没有添加进来
但是在配置文件中递归处理的话,就动态不了,如果新增了子文件夹,还要去执行一遍函数,所以想着有没有hook,放在hook里面去处理
我想在org-agenda加载的时候,去处理org-agenda-files 因为我配置文件给它设置的是一个 directory, 但是它处理不了sub-directory,递归不了。 子文件夹下面的org文件就没有添加进来
但是在配置文件中递归处理的话,就动态不了,如果新增了子文件夹,还要去执行一遍函数,所以想着有没有hook,放在hook里面去处理
没有 hook 也可以用 advice 处理
在 Emacs 里 M-x apropos<RET>org-agenda<RET>
搜索一下,应该会有结果。
advice是什么
advice-add
是 Emacs Lisp 中用于添加函数建议(advice)的函数。函数建议是一种机制,允许你在调用函数之前、之后或代替调用时执行额外的代码。
函数的语法如下:
(advice-add FUNCTION WHERE ADVICE &optional PROPS)
FUNCTION
是要建议的函数的符号或函数对象。WHERE
指定建议添加的位置,可以是 'before
、'after
、'around
、'instead
,分别表示在函数执行之前、之后、代替执行、或者在任何地方。ADVICE
是一个函数,它将被添加为建议。根据 WHERE
参数的不同,ADVICE
可以是一个在被建议的函数之前、之后或代替它时调用的函数。PROPS
是一个可选的关联列表,包含额外的属性,如 :filter-args
、:depth
等。以下是一个简单的例子,演示如何在一个函数调用之前和之后添加建议:
(defun my-function ()
(message "Original function"))
(advice-add 'my-function
:before
(lambda () (message "Before calling my-function")))
(advice-add 'my-function
:after
(lambda () (message "After calling my-function")))
(my-function)
在这个例子中,我们定义了一个简单的函数 my-function
。然后,我们使用 advice-add
在调用该函数之前和之后分别添加了两个建议。当我们调用 my-function
时,将会看到建议的消息输出。
所有defun函数声明的都支持吗?
是的,甚至C语言定义的函数也支持()只要能在 C-h f 里面找到的都行