我正在尝试在Windows 7计算机上运行Emacs v22.2。但是,启动时未加载init
文件(使用M-x load-file
手动加载它可以正常工作)。
我尝试过使用两者:
~\.emacs, ~\_emacs
~\.emacs.d.init.el
但问题仍然存在。
评估(insert (getenv "HOME"))
会返回预期值。
答案 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 Links 和 Soft Links 之间的区别。
我的第一次尝试是建立一个指向我的 init.el
的软链接。但 Emacs 忽略了该链接并在没有 init.el
的情况下启动。
下一次成功的尝试是硬链接。我做的步骤如下:
使用管理权限打开命令提示符。
一种。按 Windows + R。
湾输入“cmd.exe”并按 Shift + Enter。
C。当 Windows 要求提供管理权限时,点按“是”。
转到您的主目录。
一种。输入 cd C:\Users\<your name>
。
运行以下命令在 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