我在哪里可以find我的.emacs文件在Windows上运行的Emacs?

我试图寻找Emacs的Windows安装.emacs文件,但我找不到它。 在Windows下有和Unix一样的文件名吗?

我必须自己创build它吗? 如果是这样,在什么具体的目录下呢?

从Emacs FAQ中复制并粘贴, http ://www.gnu.org/software/emacs/windows/:

我在哪里把我的init文件?

在Windows上, .emacs文件可能被称为_emacs以便向后兼容DOS和FAT文件系统,其中的文件名不能以点开头。 有些用户更喜欢继续使用这样的名称,因为Windows资源pipe理器无法创build名称以点开头的文件,尽pipe文件系统和大多数其他程序可以处理它。 在Emacs 22及更高版本中,init文件也可能被调用.emacs.d/init.el 许多由Lisp软件包创build的其他文件现在也存储在.emacs.d目录中,所以这会将所有与Emacs相关的文件保存在一个地方。

上面提到的所有文件都应该放在你的HOME目录下。 HOME目录是通过以下步骤确定的:

  1. 如果设置了环境variablesHOME,则使用它指示的目录。
  2. 如果registry项HKCU \ SOFTWARE \ GNU \ Emacs \ HOME已设置,请使用它指示的目录。
  3. 如果registry项HKLM \ SOFTWARE \ GNU \ Emacs \ HOME已设置,请使用它指示的目录。 不推荐,因为它会导致用户共享相同的HOME目录。
  4. 如果C:\.emacs存在,则使用C:/ 。 这是为了向后兼容,因为以前的版本默认为C:/如果没有设置HOME。
  5. 使用用户的AppData目录,通常是在用户的configuration文件目录下的一个名为Application Data的目录,其位置根据Windows版本以及该计算机是否属于某个域的一部分而有所不同。

在Emacs中,文件名开头的~扩展到您的HOME目录,因此您可以随时使用Cx Cf ~/.emacsfind您的.emacs文件。

在MS-Windows的HOME和Startup目录中还有更多的信息。

它应该存储在variablesuser-init-file中。 使用CH v user-init-file RET来检查。 您也可以使用Mx eval-expression RET (find-file user-init-file) RET直接打开它

在Emacs for Windows中像这样打开文件:

 Cx Cf ~/.emacs 

更多信息在Emacs Wiki中

在我的Vista的盒子里是在C:\Users\<USER>\AppData\Roaming\

在Windows 7中,将init.el文件放在C:\Users\user-name\AppData\Roaming\.emacs.d\ ,其中用户名是您的用户/login文件夹。

小心,这样你的init.el文件将不会被命名为init.el.txt 。 如果你用记事本这样的编辑器创build你的文件,这是Windows所做的事情。

请注意,仅仅键入Ctrl-x Ctrl-f ~/.emacs并创build文件可能是不够的。

这可能是因为你的Emacs应用程序使用了不同的地方来存储你的init文件,如果是这样的话,那么创build文件〜/ .emacs就会创build一个你的Emacs应用程序忽略的无用文件

另外,您可能想要做的不仅仅是访问 .emacs init文件,但您可能想知道它在哪里,即它的path名。

为了解决这个问题,有两种方法:

简单的方法:键入Ctrl + H V user-init-file 返回

稍微棘手的方法:您可以通过以下方式找出您的系统正在存储自己的.emacs文件的位置:

  1. 点击选项并向下滚动到“设置默认字体…”
  2. 更改字体设置,然后单击确定
  3. 在选项菜单上,进入“保存选项”
  4. 当保存选项时,系统会保存.emacs文件, 您可以在Emacs屏幕底部的小缓冲区中读取文件path

当kanja回答时,这个文件的path存储在user-init-filevariables中(或者如果没有init文件存在,variables就包含了创build它的默认值)。

所以不pipe你使用哪个可能的init文件名,以及它在哪个目录,你都应该能够访问你的init文件:

M- 🙁 (find-file user-init-file) RET

或者在回声区显示完整的path:

M- 🙁 (expand-file-name user-init-file) RET

在22以上的Windows上的Emacs版本,似乎已经转移到

 ~/.emacs.d/init.el 

~是你的环境variablesHOME的值(参见控制面板→ 系统高级环境variables )。

文件本身可能不存在。 在这种情况下,创build它。

在Emacs 23和Windows 7上,只有在您设置以下情况下才能正常工作:

 HKCU\SOFTWARE\GNU\Emacs\HOME 

我发现Emacs 22偶尔会在我的XP机器上打开“C:\ Documents and Settings \ username \ Application Data \ .emacs”,或者只是“C:\ Documents and Settings \ username \ .emacs”。 我还没有find解释为什么它偶尔会改变它的思想。

〜总是指向当前emacs认为是HOME的实例,但是kanja的提示(Ch v user-init-file)总是会告诉你〜/ .emacs实际映射的内容。

在Windows XP上是这样的:

 C:\Documents and Settings\yourusernamehere\Application Data\ 

有一个基于您的Windows版本和额外信息的目录列表: http : //www.gnu.org/software/emacs/manual/html_node/emacs/Windows-HOME.html

在Windows 8.1上,如果Emacs从Windows资源pipe理器启动,或者从cmd控制台启动,它使用C:\ Users \ <USER> \ AppData \ Roaming.emacs init文件。 当我从PowerShell启动Emacs时,Emacs在C:\ Users \ <USER>文件夹中查找它的init文件。 解决此问题的方法是将HOME用户环境variables(控制面板\系统和安全\系统 – >高级系统设置 – >高级 – >环境variables)设置为C:\ Users \ <USER> 。 在这个改变之后,无论我如何启动Emacs,它都使用相同的init文件(请参阅此问题的接受答案)