启动时不会加载Emacs init文件

时间:2011-11-13 23:22:56

标签: windows emacs init

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

我尝试过使用两者:

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

但问题仍然存在。

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

4 个答案:

答案 0 :(得分:4)

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

答案 1 :(得分:1)

我刚刚在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文件。

答案 2 :(得分:0)

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

答案 3 :(得分:0)

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

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

然后我想起了符号链接的存在。所以我搜索了一些关于如何在 Windows 中创建符号链接以及 Hard LinksSoft Links 之间的区别。

我的第一次尝试是建立一个指向我的 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