在解决 this 问题时,我发现我需要禁用站点初始化文件才能让我的 emacs + CEDET 运行(使用
emacs --no-site-file
启动 emacs 时一切正常,但在没有附加参数的情况下会被破坏)。
我想永久禁用站点初始化文件,但由于我在启动 emacs(启动器/面板/终端)时使用了几种不同的方法/方法,我不认为在我的
.zshrc
中使用别名不会工作。
我需要一种方法来永久禁用所有站点启动文件。有什么简单的方法可以实现这一目标吗?谢谢!
在
/usr/local/bin/emacs
中创建包装器应该允许您覆盖系统范围内的默认 emacs
,前提是您具有写访问权限和理智的 PATH
。
话虽如此,建议
eieio
加载 cedet
可能是一个更合适的解决方法。
要回答具体问题,如果不构建您自己的 Emacs 版本(或者,正如您提到的,始终使用
site-start
运行),则不可能禁用 --no-site-file
文件。
如果您查看变量
site-run-file
的文档,您会看到:
运行时加载顺序为: 1. 此变量中描述的文件 (
),如果 非零; 2.site-run-file
默认.el'。~/.emacs'; 3.
如果使用
-q
运行 Emacs 足以解决问题,您可以在 .emacs 中通过设置来实现:
(setq inhibit-default-init t)
综上所述,构建/安装您自己的 Emacs 非常简单。您几乎可以剪切/粘贴此页面上列出的命令(它们是
./configure; make; make install
)。
最初问这个问题时,答案是正确的,禁用
site-start
文件的唯一方法是使用 --no-site-file
启动 emacs 或自定义 emacs 构建。
然而,emacs 27(于 2020 年发布)引入了early init file,它允许在通常的初始化之前自定义 emacs。
现在您可以通过将以下内容添加到您的
~/.emacs.d/early-init.el
来禁用站点文件:
(setq site-run-file nil)