Howto disable the emacs site-start files permanently?
当解决这个问题时,我发现我需要禁用站点级的 init 文件才能让我的 emacs CEDET 运行(使用 emacs --no-site-file 启动 emacs 时一切正常,但没有附加参数就坏了)。
我想永久禁用站点级初始化文件,但由于我在启动 emacs(启动器/面板/终端)时使用了几种不同的方法/方法,我不认为在我的 .zshrc 不会工作。
我需要一种方法来永久禁用所有站点启动文件。有没有简单的方法来实现这一点?谢谢!
- 如果我正确理解了问题,gnus 不是自动加载而是显式加载,然后加载 auth-source,在我可以使用我的 .emacs.d/init.el 加载 CEDET 之前加载 eieio.el。不幸的是,CEDET 要求 eieio 在其自身之后加载。我将上面链接的问题追溯到这个冲突。在我看来,完全禁用站点初始化文件是最好/最简单的解决方案,不是吗?
在 /usr/local/bin/emacs 中创建package器应该允许您覆盖默认的 emacs 系统范围,前提是您具有写访问权限和健全的 PATH。
话虽如此,建议 eieio 加载 cedet 可能是更合适的解决方法。
-
我如何建议 eieio 在加载自身之前加载 cedet?
-
(defadvice 'eieio (before activate compile) (require 'cedet)) 之类的东西......不在我的电脑上,所以可能不完全正确。
-
我现在使用package方法;在我有时间自己编译 emacs 之前,这似乎是最简单的解决方案。
-
仅仅为了解决加载路径问题而重建 Emacs 听起来比禁用站点 init 文件更加矫枉过正。您应该在 init 文件中找到确切的问题并解决它。
要回答具体问题,如果不构建您自己的 Emacs 版本(或者,正如您所提到的,始终使用 --no-site-file 运行),就无法禁用 site-start 文件。
如果您查看变量 site-run-file 的文档,您会看到:
the run-time load order is: 1. file described in this variable (site-run-file), if
non-nil; 2. ~/.emacs'; 3.default.el'.
如果使用 -q 运行 Emacs 足以解决问题,您可以在 .emacs 中通过设置:
1
| (setq inhibit-default-init t) |
话虽如此,构建/安装您自己的 Emacs 非常简单。您几乎可以剪切/粘贴此页面上列出的命令(它们是 ./configure; make; make install)。
- 省略"标准"站点运行文件时,是否需要应用任何其他 ./configure 选项(前缀除外)?
-
@elemakil 不,默认情况下没有站点启动文件(至少我的构建都没有)。