以通用方式定义自定义Emacs挂钩

以通用方式定义自定义Emacs挂钩,emacs,elisp,Emacs,Elisp,我想在加载自定义文件后运行一些代码,但我想以一种通用的方式运行。简单的方法是,只需要一个附加到的函数列表,然后在列表中执行每个函数,但我想看看是否可以作为一个钩子来执行。比如: (run-hooks 'bw-after-custom-load-hook) 每次我想添加时都要这样做: (add-hook 'bw-after-custom-load-hook (lambda () 'something)) 钩子就是这样工作的吗?我能找到的所有文档似乎都只是在modes提供的现有钩子中添加了内容。

我想在加载自定义文件后运行一些代码,但我想以一种通用的方式运行。简单的方法是,只需要一个附加到的函数列表,然后在列表中执行每个函数,但我想看看是否可以作为一个钩子来执行。比如:

(run-hooks 'bw-after-custom-load-hook)
每次我想添加时都要这样做:

(add-hook 'bw-after-custom-load-hook (lambda () 'something))
钩子就是这样工作的吗?我能找到的所有文档似乎都只是在modes提供的现有钩子中添加了内容。

我已经解决了(应该在发布之前尝试过):

然后在另一个文件中:

;; but load it after custom has loaded, so it's marked safe
(add-hook 'bw-after-custom-load-hook
      (lambda ()
        (load-theme 'solarized-dark)))
然后我们加载custom并调用钩子:

;; Load custom file last
(setq custom-file (concat dotfiles-dir "custom.el"))
(load custom-file 'noerror)

;; load my custom hooks
(run-hooks 'bw-after-custom-load-hook)

您是否在init hook之后查找

(defun my-functions-for-after-init ()
  (....))
然后呢,

(add-hook 'after-init-hook 'my-functions-for-after-init)

你可能想接受你自己的答案,除非你还在寻找关于这个问题的意见?确实如此。起初我并不清楚,但Emacs中的钩子只是函数列表!(尽管也有一些处理缓冲区本地钩子的特殊(聪明)规则。)
(add-hook 'after-init-hook 'my-functions-for-after-init)