我在哪里可以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目录是通过以下步骤确定的:
- 如果设置了环境variablesHOME,则使用它指示的目录。
- 如果registry项HKCU \ SOFTWARE \ GNU \ Emacs \ HOME已设置,请使用它指示的目录。
- 如果registry项HKLM \ SOFTWARE \ GNU \ Emacs \ HOME已设置,请使用它指示的目录。 不推荐,因为它会导致用户共享相同的HOME目录。
- 如果
C:\.emacs
存在,则使用C:/
。 这是为了向后兼容,因为以前的版本默认为C:/
如果没有设置HOME。 - 使用用户的AppData目录,通常是在用户的configuration文件目录下的一个名为Application Data的目录,其位置根据Windows版本以及该计算机是否属于某个域的一部分而有所不同。
在Emacs中,文件名开头的~
扩展到您的HOME目录,因此您可以随时使用Cx Cf ~/.emacs
find您的.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文件的位置:
- 点击选项并向下滚动到“设置默认字体…”
- 更改字体设置,然后单击确定
- 在选项菜单上,进入“保存选项”
- 当保存选项时,系统会保存.emacs文件, 您可以在Emacs屏幕底部的小缓冲区中读取文件path
当kanja回答时,这个文件的path存储在user-init-file
variables中(或者如果没有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文件(请参阅此问题的接受答案)