【问题标题】:How do I find which .emacs file has been loaded?如何找到已加载的 .emacs 文件?
【发布时间】:2009-05-14 18:17:50
【问题描述】:

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

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

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

【问题讨论】:

    标签: emacs dot-emacs


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      您可以尝试查看通过以下方式找到的文件:

      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,以及终端特定的初始化(对我来说是新的)。

      【讨论】:

        【解决方案3】:

        如果你在 Linux 上,你可以试试这个,看看 emacs 启动时打开了哪些文件。

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

        【讨论】:

        • 如果您在 MacOSX 上,请尝试 sudo opensnoopsudo opensnoop -p $EMACS_PID
        猜你喜欢
        • 2015-01-21
        • 1970-01-01
        • 2013-09-14
        • 2014-07-18
        • 2012-08-26
        • 2019-09-14
        • 1970-01-01
        • 2010-10-04
        • 1970-01-01
        相关资源
        最近更新 更多