如何找到已加载的.emacs文件?

时间:2009-05-14 18:17:51

标签: emacs dot-emacs

如何让emacs告诉我它已加载的.emacs文件的位置?

我的情况就是当我执行sudo emacs时,它会加载一个与我的主目录中的文件截然不同的.emacs文件。我可以通过在我自己的.emacs文件上执行M-x eval-buffer来解决这个问题,但这有很多额外的步骤,而且似乎没有在任何.emacs文件被加载时清除愚蠢的绑定。如果有的话,我只想找到.emacs文件并删除一些陌生人的绑定(c-n,c-p,c-a全部反弹到奇怪的东西)

我的主要问题仍然是,如何让emacs告诉我它已加载的.emacs文件的位置?

3 个答案:

答案 0 :(得分:47)

使用的init文件存储在变量'user-init-file'中。要使用'describe-variable'(C-h v),请输入'user-init-file',它将显示使用的文件。

答案 1 :(得分:6)

您可以尝试查看找到的文件:

C-x C-f ~/.emacs RET

~被转换为HOME环境变量的值。 Emacs查找.emacs,然后.emacs.elc(字节编译版本),然后.emacs.el,然后~/.emacs.d/init.elc~/.emacs.d/init.el。这个documentation显示了替代方案。它还取决于环境变量LOGNAMEUSER

您还可以查看*Messages*缓冲区的内容 - 尽管您应该设置(setq message-log-max t)(如果可以)以确保保留所有邮件。在缓冲区内有如下行:

  

正在加载/home/tjackson/.emacs.tjackson.el(来源)......

将显示已加载的文件。

您还应该查看Find-Init文档,其中显示可以加载的更多文件,如site-start.el和终端特定的初始化(对我而言)。

答案 2 :(得分:5)

如果您使用的是Linux,则可以尝试使用它来查看emacs启动时打开的文件。

sudo strace -o /tmp/emacs.txt -e open emacs