评估init文件后,Emacs调用
package-initialize
(听起来就是这样)。在初始化包之后,Emacs运行
after-init-hook
,因此,如果您想操作在包初始化过程中修改过的变量,可以在init文件中放入以下内容:
(add-hook 'after-init-hook 'my-after-init-hook)
(defun my-after-init-hook ()
"After package initialisation."
;; do something with Info-directory-list
)
你也可以打电话
程序包初始化
您自己,前提是您确保预先设置了任何必要的与包相关的变量。看见
Emacs 24 Package System Initialization Problems
详细信息。
至于如何以及为什么
Info-directory-list
正在修改,中有关该方面的手册注释
(elisp) Multi-file Packages
:
创建多文件包不如创建单个文件方便
包,但它提供了更多功能:它可以包括多个Emacs
Lisp文件、信息手册和其他文件类型(如图像)。
[...]
如果内容目录包含名为
dir
,这是
假设是一个信息目录文件,由
install-info
.*注意
调用安装信息:(texinfo)调用安装信息。相关
信息文件也应该出现在内容目录中。在这个
在这种情况下,Emacs会自动将内容目录添加到
信息目录列表
当程序包被激活时。
明确地
package-activate-1
这样做:
(when (file-exists-p (expand-file-name "dir" pkg-dir))
;; FIXME: not the friendliest, but simple.
(require 'info)
(info-initialize)
(push pkg-dir Info-directory-list))