【问题标题】:Emacs init file won't load at start upEmacs 初始化文件在启动时不会加载
【发布时间】:2011-12-28 06:33:44
【问题描述】:

我正在尝试在 Windows 7 计算机上运行 Emacs v22.2。但是,init 文件在启动时没有加载(使用 M-x load-file 手动加载它可以正常工作)。

我都试过了:

~\.emacs, ~\_emacs 
~\.emacs.d.init.el 

但问题仍然存在。

评估 (insert (getenv "HOME")) 会返回预期值。

【问题讨论】:

  • 您的 Messages 缓冲区中有任何内容吗? C-x b 切换到该缓冲区。
  • 你试过~/.emacs.d/init.el吗?
  • 这是我启动后的消息缓冲区("C:\\home\\bin\\emacs\\bin\\emacs.exe")Loading encoded-kb...doneload-with-code-conversion: Symbol's value as variable is void: setenv~/.emacs.d/init.el 也不起作用。
  • 22.2 真的很老了。您可能希望升级到 23.3,或 24 的最新预测试版本 (alpha.gnu.org/gnu/emacs/windows)

标签: windows emacs init


【解决方案1】:

根据您在 Windows 7 中打开 emacs 的方式,它会在不同的位置查找 .emacs 文件。如果从 shell(在 cygwin、Msys 等中)调用它,它将在 $HOME (~) 位置查找,如果您通过单击图标从安装目录运行它,它会在 %APPDATA 中查找此文件% 位置(通常是 C:\Users\您的用户名\AppData\Roaming )。这可能会导致您在整个地方进行愉快的追逐。我发现最好确定您希望文件存储在哪里,并创建符号链接(使用 windows mklink 实用程序)到所有其他可能的位置。

【讨论】:

    【解决方案2】:

    我遇到了类似的问题(在 Windows 10 上)。问题是 Emacs 在启动时读取的是~\.emacs 而不是~\.emacs.d\init.el。将~\.emacs的内容移动到~\.emacs.d\init.el并删除~\.emacs解决了这个问题。

    【讨论】:

      【解决方案3】:

      我刚刚在 Windows 7 上安装了 Emacs 的补丁版本,指定了环境变量 HOME=c:\klang,从 github 中检查了我十年前的配置文件并添加了

      (and (= emacs-major-version 23) 
        (defun server-ensure-safe-dir (dir) "Noop" t))
      

      ~/.emacs.d/init.el 并且已经启动并运行。

      您缺少的是来自mule.el 的一些组件,只需安装新版本的 emacs 即可修复它。

      如果HOME 没有在通用环境中设置,(getenv "APPDATA") 可能会接管并且 emacs 会尝试在该目录下的某个位置读取您的 init 文件。

      【讨论】:

        【解决方案4】:

        我刚刚设法解决了同样的问题(lcollado 和 klang 的回答给了我一个关于如何解决它的小提示)。

        我在C:\Users\Edwin\.emacs.d\init.el 设置了一个配置文件,当我试图让Emacs 加载它时,它没有。我最初的想法是在C:\Users\Edwin\AppData\Roaming\.emacs.d\init.el 创建一个init.el 文件,它将加载我的原始配置文件。不过,我想要一个更简单的解决方案。

        然后我记得符号链接是存在的。所以我做了一些关于如何在 Windows 中创建符号链接以及 硬链接软链接 之间的区别的搜索。

        我的第一次尝试是创建指向我的init.el 的软链接。但是 Emacs 忽略了该链接并在没有 init.el 的情况下启动。

        下一个成功的尝试是硬链接。我做的步骤如下:

        1. 使用管理权限打开命令提示符。
          一种。按 Windows + R
          湾。键入“cmd.exe”并按 Shift + Enter
          C。当 Windows 要求提供管理权限时,点击“是”。

        2. 转到您的主目录。
          一种。输入cd C:\Users\<your name>

        3. 运行以下命令在C:\Users\<your name>\AppData\Roaming\.emacs.d\init.el中建立硬链接:

          :: mklink /h Destination Source
          :: Destination - Where do you want the hard link to be and what will be it's name?
          :: Source      - What file do you want to link?
          mklink /h AppData\Roaming\.emacs.d\init.el .emacs.d\init.el
          

        【讨论】:

          猜你喜欢
          • 2016-10-31
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2022-10-24
          • 2015-03-08
          • 2016-06-15
          • 2013-07-16
          • 1970-01-01
          相关资源
          最近更新 更多