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文件(请参阅此问题的已接受答案)