以通用方式定义自定义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)