gpt4 book ai didi

emacs - 在 emacs 中,包含包时谁在设置 Info-directory-list?

转载 作者:行者123 更新时间:2023-12-04 20:45:01 26 4
gpt4 key购买 nike

我最近改用 emacs 的包管理器 packages .

从那时起,一些 emacs 路径变量的设置超出了我在 .emacs 中所做的设置。文件:两者load-pathInfo-directory-list得到包裹中的东西。但我不明白这些定制是在哪里完成的。

让我们专注于Info-directory-list : 在我的 .emacs文件我没有设置它,所以它应该是 nil (所以稍后当 info 启动时,它从 Info-default-directory-list 初始化。但是在我的新包装中,它已经被初始化并添加了一些包目录。这弄乱了我的dir 中的 info 结构。我检查了自动加载文件,但它们没有以任何方式设置 Info-directory-list - 并且包中没有其他 elisp 文件(特别是 pandoc-mode)这样做。
Info-directory-list 在哪里变量集以及如何重新控制此变量中的顺序?

最佳答案

在评估您的 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 Package System Initialization Problems详情。

至于如何以及为什么 Info-directory-list正在修改, (elisp) Multi-file Packages 中对此方面的手动注释:

A multi-file package is less convenient to create than a single-file package, but it offers more features: it can include multiple Emacs Lisp files, an Info manual, and other file types (such as images).



[...]

If the content directory contains a file named dir, this is assumed to be an Info directory file made with install-info. *Note Invoking install-info: (texinfo)Invoking install-info. The relevant Info files should also be present in the content directory. In this case, Emacs will automatically add the content directory to Info-directory-list when the package is activated.



具体来说, 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))

关于emacs - 在 emacs 中,包含包时谁在设置 Info-directory-list?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19285842/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com