Answers:
从Emacs常见问题解答(http://www.gnu.org/software/emacs/windows/)复制并粘贴:
在Windows上,.emacs可以调用该文件_emacs以实现与DOS和FAT文件系统的向后兼容性,而DOS和FAT文件系统的文件名不能以点开头。一些用户更喜欢继续使用这样的名称,因为Windows资源管理器无法创建以点开头的名称的文件,即使文件系统和大多数其他程序可以处理它也是如此。在Emacs 22和更高版本中,初始化文件也可以称为.emacs.d/init.el。Lisp软件包创建的许多其他文件现在也存储在该.emacs.d目录中,因此这会将所有与Emacs相关的文件保存在一个位置。
上面提到的所有文件都应放在您的HOME目录中。通过以下步骤确定HOME目录:
C:\.emacs存在,请使用C:/。这是为了向后兼容,因为以前的版本默认C:/为未设置HOME的情况。在Emacs中,~文件名的开头会扩展到您的HOME目录,因此您始终可以使用来找到.emacs文件C-x C-f ~/.emacs。
它应该存储在变量user-init-file中。使用C-H v user-init-file RET检查。您也可以直接使用打开它M-x eval-expression RET (find-file user-init-file) RET
trailing garbage following expression?
在我的Vista盒子上 C:\Users\<USER>\AppData\Roaming\
请注意,仅键入Ctrl-x Ctrl-f ~/.emacs和创建文件可能还不够。
可能是您的Emacs应用程序使用了其他位置来存储您的init文件,如果是这样,那么创建文件〜/ .emacs只会创建一个无用的文件,而您的Emacs应用程序 忽略。
另外,您可能想做的不只是 访问 .emacs初始化文件,,但是您可能想知道它在哪里,即它的路径名。
为此,有两种方法:
简单方法:输入Ctrl+ H V用户初始化文件Return
稍微棘手的方法:您可以通过以下方式找出系统存储自己的.emacs文件的位置:
c:/Users/user1/AppData/Roaming/.emacs.el。这个站点emacswiki.org/emacs/DotEmacsDotD帮助我认识到我需要命名文件~/.emacs.d/init.el,这意味着文件系统中的文件已存在c:\Users\user1\AppData\Roaming\.emacs.d\init.el(根本不是我所期望的)。我更喜欢设置HOME环境变量,并将文件放置在我的%USERPROFILE%目录中,该目录是Windows上的逻辑HOME目录(至少就我而言)。
您必须创建一个emacs初始化文件。一个不会自动创建。我有一个类似的问题,这个答案可以追踪我所做的事情。
我的问题是我的~/.emacs.el文件未加载。奇怪,因为这一直对我有用。
这个问题/答案对我有所帮助,但我不得不将init文件放入中,%USERPROFILE%\AppData\Roaming\.emacs.d\init.el因为这显然是Windows上的默认行为。
为了解决这个问题,我在emacs * scratch *缓冲区中运行了以下命令。
user-emacs-directory
"~/.emacs.d/"
当我看到的user-emacs-directory时候~/.emacs.d,我只是将.emacs.el文件移动到%USERPROFILE%\.emacs.d\init.el。但这仍然行不通。我继续expand-file-name如下图所示:
(expand-file-name user-emacs-directory)
"c:/Users/pats/AppData/Roaming/.emacs.d/"
热爱Windows的工作原理。(不是)因此我将emacs.el文件移到,%USERPROFILE%\AppData\Roaming\.emacs.d\init.el并且可以正常工作。现在正在读取文件。但是我收到其他错误,因为初始化文件加载了其他文件(个人emacs)(位于中)~/myenv/emacs/*.el。
Warning (initialization): An error occurred while loading ‘c:/Users/pats/AppData/Roaming/.emacs.d/init.el’:
嗯...似乎我的所有文件~/myenv/emacs/*.el都需要移动才能正常工作,但我不想这样做。然后我意识到,由于未设置HOME环境变量,因此emacs正在执行其默认行为。
解
一旦我将Windows HOME环境变量设置为%USERPROFILE%所有变量,一切便开始像过去25年一样工作。:-)
要设置HOME环境变量,我键入WindowsKey +“为您的帐户编辑环境变量”以打开“ 环境变量”对话框,然后输入HOME=%USERPROFILE%。
现在我的emacs初始化文件.emacs.el回到了正确的位置,$HOME/.emacs.el而不是%USERPROFILE%\AppData\Roaming\.emacs.d\init.el
公平地讲,如果Windows仅有一个地方可以为用户安装的软件包放置文件,则使HOME =的解决方案%USERPROFILE\AppData\Roaming可能是可以接受的,但是由于某些应用程序使用%USERPROFILE%,一些使用%USERPROFILE\AppData\Roaming而其他使用%USERPROFILE\AppData\Local它,这使得很难知道在哪里可以找到您的配置。文件。
我更喜欢将所有内容都放在我的%USERPROFILE%或$ HOME目录中。
另一个类似的问题在这里:
在Emacs 23和Windows 7上,仅当您进行以下设置时,它才有效:
HKCU\SOFTWARE\GNU\Emacs\HOME
我发现Emacs 22有时会在我的XP机器上打开“ C:\ Documents and Settings \用户名\ Application Data \ .emacs”,或仅打开“ C:\ Documents and Settings \用户名\ .emacs”。我还没有找到解释为什么它偶尔会改变主意。
〜总是指向emacs当前实例认为是HOME的任何内容,但是kanja的技巧(Ch v user-init-file)将始终告诉您〜/ .emacs实际映射到的内容。
HOME根据我的启动方式来不同地设置环境变量runemacs.exe。如果我从资源管理器中启动它,HOME则设置为C:\Documents and Settings\username,但是如果我从开始菜单中启动它,则设置HOME为C:\Documents and Settings\username\Application Data。奇怪。
根据您的Windows版本和其他信息,有一个目录列表:http : //www.gnu.org/software/emacs/manual/html_node/emacs/Windows-HOME.html
在Windows 8.1上,如果Emacs是从Windows资源管理器,快捷方式或cmd控制台启动的,则它将使用C:\ Users \ <USER> \ AppData \ Roaming.emacs初始化文件。当我从PowerShell启动Emacs时,Emacs在C:\ Users \ <USER>文件夹中查找其初始化文件。解决此问题的方法是将HOME用户环境变量(“控制面板\系统和安全性\系统->高级系统设置->高级->环境变量”)设置为C:\ Users \ <USER>。进行此更改后,无论我如何启动Emacs,它都使用相同的init文件(请参阅此问题的已接受答案)