在评估了您的 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
  )
您也可以调用package-initialize自己,前提是您确保预先设置了任何必要的包相关变量。有关详细信息,请参阅Emacs 24 包系统初始化问题。
至于Info-directory-list修改方式和原因,手册对此方面的评论(elisp) Multi-file Packages如下:
  创建多文件包不如创建单文件包方便,但它提供了更多功能:它可以包含多个 Emacs Lisp 文件、一个 Info 手册和其他文件类型(如图像)。
[...]
  如果内容目录包含一个名为 的文件dir,则假定这是一个使用install-info. *注意调用安装信息:(texinfo)调用安装信息。相关的信息文件也应该存在于内容目录中。在这种情况下,Emacs 会在激活包时自动添加内容目录
  Info-directory-list。
具体来说,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))