我在哪里可以找到我.emacs的文件用Emacs的运行在Windows?
-
06-07-2019 - |
题
我试图寻找。emacs的文件为我的窗户安装用Emacs的,但是我找不到它。没有相同文件,在Windows为在Unix?
我必须创建它自己?如果是的话,在什么具体的目录?
解决方案
从Emacs常见问题解答中复制并粘贴, http://www.gnu.org/software / emacs的/窗/ :
我在哪里放置我的初始文件?
在Windows上,可以调用.emacs
文件_emacs
以向后兼容DOS和FAT文件系统,其中文件名不能以点开头。有些用户更喜欢继续使用这样的名称,因为Windows <!>资源管理器无法创建名称以点开头的文件,即使文件系统和大多数其他程序都可以处理它。在Emacs <!> nbsp; 22及更高版本中,init文件也可能被称为.emacs.d/init.el
。由Lisp软件包创建的许多其他文件现在也存储在.emacs.d
目录中,因此这会将所有与Emacs相关的文件保存在一个位置。
上面提到的所有文件都应该放在您的HOME目录中。 HOME目录由以下步骤确定:
- 如果设置了环境变量HOME,请使用它指示的目录。
- 如果设置了注册表项HKCU \ SOFTWARE \ GNU \ Emacs \ HOME,请使用它指示的目录。
- 如果设置了注册表项HKLM \ SOFTWARE \ GNU \ Emacs \ HOME,请使用它指示的目录。不推荐,因为它会导致用户共享相同的HOME目录。
- 如果
C:\.emacs
存在,则使用C:/
。这是为了向后兼容,因为如果未设置HOME,以前的版本默认为~
。 - 使用用户的AppData目录,通常是用户配置文件目录下名为Application Data的目录,其位置因Windows版本以及计算机是否属于域而异。 醇>
在Emacs中,文件名开头的C-x C-f ~/.emacs
会扩展到您的HOME目录,因此您始终可以使用<=>找到.emacs文件。
其他提示
它应该存储在变量user-init-file中。使用C-H v user-init-file RET
进行检查。您也可以使用M-x eval-expression RET (find-file user-init-file) RET
在我的Vista框中,它位于C:\Users\<USER>\AppData\Roaming\
请注意,仅输入Ctrl-x Ctrl-f ~/.emacs
并创建文件可能还不够。
可能是您的Emacs应用程序使用不同的位置来存储您的init文件,如果是这样,那么创建文件〜/ .emacs只会创建一个无用的文件,您的Emacs应用程序忽略该文件。
此外,您可能希望做的不仅仅是访问 .emacs init文件,但您可能想知道它在哪里,即其路径名。
要实现这一目标,有两种方法:
简单方法:输入 Ctrl + H V user-init-file 返回
略显棘手的方式: 您可以通过以下方式找到系统存储其自己的.emacs文件的位置:
- 点击选项并向下滚动到<!>“设置默认字体... <!>”
- 更改字体设置,然后单击“确定”
- 在选项菜单上,转到<!>“保存选项<!>”;
- 保存选项后,系统会保存其.emacs文件, 并且您可以在Emacs屏幕底部的迷你缓冲区中读取文件路径 醇>
在Windows 7中,将init.el
文件放在C:\Users\user-name\AppData\Roaming\.emacs.d\
中,其中用户名是您的用户/登录文件夹。
请注意不要将init.el.txt
文件命名为<=>。如果您使用记事本等编辑器创建文件,Windows就会这样做。
在Windows 22以上的Emacs版本上,它似乎已移至
~/.emacs.d/init.el
,~
作为环境变量HOME的值(请参阅控制面板<!>#8594; 系统 <!>#8594; 高级 <!> #8594; 环境变量)。
文件本身可能不存在。在这种情况下,只需创建它。
正如kanja所回答的那样,此文件的路径存储在user-init-file
变量中(如果不存在init文件,则该变量包含创建它的默认值)。
所以无论你正在使用哪个可能的init文件名,以及它所在的目录,你都应该能够访问你的init文件:
M - : (find-file user-init-file)
RET
或者在:echo区域中显示其完整路径:
M - : (expand-file-name user-init-file)
RET
在Emacs 23和Windows <!> nbsp; 7上,只有在设置:
时才有效HKCU\SOFTWARE\GNU\Emacs\HOME
我发现Emacs 22偶尔会打开<!>“C:\ Documents and Settings \ username \ Application Data \ .emacs <!>”,或只是<!>“C:\ Documents和Settings \ username \ .emacs <!> quot;在我的XP机器上。我没有找到解释为什么它偶尔会改变它的想法。
〜将始终指向当前emacs认为是HOME的实例,但kanja的提示(C-h v user-init-file)将始终告诉您〜/ .emacs实际映射到的内容。
在Windows <!> nbsp; XP上:
C:\Documents and Settings\yourusernamehere\Application Data\
你必须创建一个emacs的初始化的文件。一个不会自动建立的。我有一个类似的问题,这个答案跟踪下来我做了什么。
我的问题是我 ~/.emacs.el
文件是不能装载。奇怪的,因为这始终是为我工作。
这个问题的回答帮了我但我不得不把我的初始文件在 %USERPROFILE%\AppData\Roaming\.emacs.d\init.el
因为这是显然的默认行为。
要解决此,我跑下在emacs *头* 缓冲区。
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
将需要移动了这个工作但是我不想做到这一点。然后我意识到,因为家庭环境变量,不集, emacs的是执行其默认的行为.
解决方案
一旦我把我的窗户 HOME
环境变量 %USERPROFILE%
一切都开始工作,就像它在过去25年。:-)
设定的家庭环境中的变量,我打WindowsKey+"编辑的环境变量的帐户"来打开 环境变量 对话框,并进入了 HOME=%USERPROFILE%
.
现在我emacs的初始化的文件。emacs。el为是回到它应有的地位 $HOME/.emacs.el
而不是在 %USERPROFILE%\AppData\Roaming\.emacs.d\init.el
是公平的,如果Windows只有一个地方把文件,为用户安装软件包的解决方案的做家庭=%USERPROFILE\AppData\Roaming
可能是可以接受的,但是因为某些应用程序的使用 %USERPROFILE%
, 一些使用 %USERPROFILE\AppData\Roaming
和其他人使用 %USERPROFILE\AppData\Local
它只是使得它很难知道在哪里可以找到你的配置文件。
我更喜欢有一切都在我%落%或$HOME directory.
另一个类似的问题就在这里:
根据您的Windows版本和附加信息有一个目录列表: http://www.gnu.org/software/emacs /manual/html_node/emacs/Windows-HOME.html
在Windows 8.1上,如果从 Windows资源管理器,快捷方式启动Emacs,或者从 cmd 控制台启动Emacs,则使用 C:\ Users \ <!> lt; USER <!> gt; \ AppData \ Roaming.emacs 初始化文件。当我从PowerShell启动Emacs时,Emacs在 C:\ Users \ <!> lt; USER <!> gt; 文件夹中查找其init文件。解决此问题的方法是设置 HOME 用户环境变量(控制面板\系统和安全\系统 - <!> gt;高级系统设置 - <!> gt;高级 - <!> gt ;环境变量)到 C:\ Users \ <!> lt; USER <!> gt; 。在此更改之后,无论我如何启动Emacs,它都使用相同的init文件(请参阅此接受的答案问题)