如何让emacs告诉我它加载的.emacs文件的位置?
我的情况就是当我这样做时sudo emacs
,它会加载一个与我的主目录中的文件截然不同的.emacs文件.我可以通过M-x eval-buffer
自己的.emacs文件来解决这个问题,但这是一个额外的步骤,而且它似乎无法清除任何.emacs文件正在加载的傻瓜绑定.如果有的话,我只想找到.emacs文件并删除一些陌生人的绑定(cn,cp,ca全部反弹到奇怪的东西)
我的主要问题仍然是,如何让emacs告诉我它加载的.emacs文件的位置?
使用的init文件存储在变量'user-init-file'中.要使用'describe-variable'(Ch v),请输入'user-init-file',它将显示使用的文件.
您可以尝试查看找到的文件:
C-x C-f ~/.emacs RET
~
被转换为HOME
环境变量的值.Emacs寻找.emacs
,然后.emacs.elc
(字节编译版本),然后.emacs.el
,然后~/.emacs.d/init.elc
和~/.emacs.d/init.el
.本文档显示了替代方案.它还取决于环境变化LOGNAME
和USER
.
您还可以查看*Messages*
缓冲区的内容- 尽管您应该设置(setq message-log-max t)
(如果可以)以确保保留所有消息.在缓冲区内有一些看起来像这样的行:
正在加载/home/tjackson/.emacs.tjackson.el(来源)......
这将显示加载的文件.
您还应该查看Find-Init文档,该文档显示可以加载的更多文件,如site-start.el
终端特定的初始化(对我来说是新的).
如果您使用的是Linux,则可以尝试使用它来查看emacs启动时打开的文件.
sudo strace -o /tmp/emacs.txt -e open emacs