我在c:/emacs-23.3安装了emacs 23.3.1。 根据这个页面的提示,我更新了site-start.el以设置HOME环境变量。
(setenv "HOME" "c:/users/USER/emacs")
我像在Unix/Mac中一样,创建了c:/users/USER/.emacs文件来编写使用Slime的代码,但似乎无法正确启动Slime。
这是在Windows 7上设置Emacs的正确方法吗?我应该把 .emacs 文件放在哪里?
我在c:/emacs-23.3安装了emacs 23.3.1。 根据这个页面的提示,我更新了site-start.el以设置HOME环境变量。
(setenv "HOME" "c:/users/USER/emacs")
我像在Unix/Mac中一样,创建了c:/users/USER/.emacs文件来编写使用Slime的代码,但似乎无法正确启动Slime。
这是在Windows 7上设置Emacs的正确方法吗?我应该把 .emacs 文件放在哪里?
HOME
(如果我没记错的话),或将初始文件放置在默认目录中(只需启动Emacs,然后按C-x C-f ~/
查看实际目录)。
而且据我所知,在 Windows 上,初始文件可以称为_emacs
...我正在使用便携式应用程序运行emacs,这对我非常有效:
在emacs目录的根目录中创建一个批处理文件。例如,我创建了:
C:\Dropbox\PortableApps\emacs-24.3\run_emacs_portable.bat
然后,编辑该文件并将此文本放入其中:
set HOME=.\
bin\runemacs.exe %*
现在,我只需通过run_emacs_portable.bat
文件启动emacs,而我的HOME文件夹始终指向我的emacs安装文件夹。
%*允许您将参数传递给.bat文件,并将它们转发到runemacs.exe。
runemacs.exe
后面添加 %*
以转发参数,并能够使用便携式 Emacs 进行“打开方式”。 - userset HOME=.\
时,它仅更改该shell实例的环境变量。如果您双击批处理文件,则会运行一个新的shell(cmd.exe),它的“HOME”值会更改,然后关闭该shell。这就是为什么此解决方案具有在与runemacs.exe
的调用相同的.bat文件中发生set HOME=.\
调用的原因。当从.bat文件内部执行runemacs.exe
时,正在运行的shell的“HOME”值为.\
。 - Matt Klein我喜欢Роман Захаров的答案,它似乎适用于维护跨平台配置,但它没有起作用。
这是最终对我有用的内容。
(when (eq system-type 'windows-nt)
(setenv "Home" (getenv "UserProfile")))
如果您希望在Windows用户文件夹(C:\ Users \ User \ .emacs.d)中设置Emacs主目录,请将此代码添加到当前的init文件中并重新启动Emacs。
(when (eq system-type 'windows-nt)
(unless (getenv "Home")
(shell-command (format "setx \"%s\" \"%s\"" 'Home (getenv "UserProfile")))))
执行目录,例如“C:\ Users \ loggedin_user \”(括号内)
Emacs执行的位置
以及查找.xemacs(.emacs)目录的位置,其中它找到其init.el。
您可以在其中定义启动指令(例如(setenv“HOME”“c:/ Users / Username /”))等。
你可以启动emacs,输入M-x pwd
,这将显示你在Windows文件树中的位置。你可以把你的.emacs
文件放在那里。
ren _emacs .emacs
。 - Brady Trainor