Windows下设置Emacs的HOME目录
作者: Water Lin

总的来说,Emacs的默认配置文件放在变量HOME所指的路径下,所以,只要我们把.emacs扔到HOME所指向的目录就可以了,下面就简单介绍一下在Windows下设置home目录的几种方法,并进行简单的对比。
第一种方法,改变home环境变量的值。
这种方法,改变了$home变量,也会影响Cygwin或是其他一些应用程序,因为有一些程序会根据Windows的home环境变量来寻找数据存放的路径。
第二种方法,不改变Windows默认的home值,设置默认的.emacs文件读取你自己的Emacs配置文件,并重新设定Emacs的home目录。
你可以在Emacs中输入C-x C-f,然后打开路径~(即当前的home环境变量所指的路径,一般来说是这样的路径:C:/Documents and Settings/water/Application Data)。
看看显示的是哪个目录,如果此目录下没有.emacs,可以创建一个.emacs或_emacs,然后在这个.emacs文件里,加入如下语句:
(load-file "E:/water/.emacs") |
文件 E:/water/.emacs 才是我们真正的Emacs配置文件,我们可以在这个真正的配置文件里用如下语句设置我们的home目录:
1 2 3 4 5 | (setenv "HOME" "E:/water") (setenv "PATH" "E:/water") ;;set the default file path (setq default-directory "~/") (add-to-list 'load-path "~/emacs/site-lisp") |
这个方法的优点是比较简单同样也方便对.emacs文件备份,不会对其它应用程序产生任何影响。
第三种方法,修改注册表,在注册表中进行如下设置:
HKEY_LOCAL_MACHINE\SOFTWARE\GNU\Emacs\HOME=%emacs_dir%
以上三种方法都可以设置好Emacs的Home目录,但是,系统是按什么顺序来解析它们的呢?大体上的顺序是这样的:
- 如果设置了环境变量HOME,则使用HOME指定的目录。
- 如果设置了注册表里的值HKCU\SOFTWARE\GNU\Emacs\HOME,则使用这个值所指定的目录作为home目录。并不是太推荐使用这种方法,因为会导致用户共享一个home目录。
- 如果 C:\.emacs 文件存在,则使用 C:\.emacs 这个文件。这个是为了向低版本的Emacs兼容,因为低版本的Emacs就是默认用这个文件作为配置文件。
- 把用户的AppData目录作为home目录(通常来说,就是类似这样的目录 C:/Documents and Settings/water/Application Data ),这个用户的数据目录根据Windows版本的不同而有所不同。
我个人比较喜欢用第二种方法,即简单又方便备份。
其实,如果你只是想要Emacs能找到你的.emacs的话,也可以不用管HOME目录的,写个批处理文件emacs.bat:
path-of-emacs.exe -q -l path-of-your.emacs
以后执行这个批处理文件就可以用你的配置打开Emacs了。

loading...
虽然下的是Windows的版本,现在了解的多了。。配置的多了。。就想说万恶的Windows。。。这么这么好用的软件到Windows上,有些功能就这么麻烦呢。。。
[回复]
ahei 回复:
四月 15th, 2011 at 1:23 下午
@爵夅, 本来就是阿,换系统吧
[回复]
爵夅 回复:
四月 15th, 2011 at 10:04 下午
@ahei, 表示换系统工程浩大。。而且目前似乎还是需要Windows啊。。学校里有的时候教某个软件的使用都是Windows下的。。。毕竟不是计算机专业呢。。
[回复]
在网上有搜到在U盘上用emacs,我是在site-lisps下直接建了site-start.el,然后在里面输入下面的代码(不过是copy来的,原文在这里http://whiteear.blog.sohu.com/161438679.html),这个ehome的路径是,I:\ehome(I是U盘在系统上的盘符)只不过在启动的时候有点慢。。
;;if emacs run on windows, maybe it’s on U disk.
(if (memq window-system ‘(w32))
(progn
(defvar EHOME (substring data-directory 0 3))
(setenv “HOME” (concat EHOME “ehome”))
))
[回复]
ahei 回复:
五月 21st, 2011 at 4:04 下午
@爵夅, 呵呵,不错
[回复]
windows下能在 emacs中执行 telnet命令么。
我执行了下,没有反映,
[回复]
ahei 回复:
五月 17th, 2011 at 8:40 下午
@, 可以
[回复]
在window上设置home的话,可以参考有关在U盘中使用emacs 的东东,可以直接在site-lisp中新建一个site-start.el,然后我是这么设置的:(参考了在windows下设置目录的方式)
(if (memq window-system ‘(w32))
(progn
(defvar EHOME (substring data-directory 0 3))
(setenv “HOME” (concat “E:/Emacs/”))
))
(setenv “PATH” “E:/Emacs”)
;;set the default file path
(setq default-directory “~/”)
(add-to-list ‘load-path “~/emacs/site-lisp”)
然后因为是和电气有关的专业,所以可能会用到VHDL语言,然后上网搜了一下,有关于emacs下—VHDL语言的mode,这是相关网址http://www.iis.ee.ethz.ch/~zimmi/emacs/vhdl-mode.html
关于vhdl-mode的设置可以看压缩包里的info文件
现在越来越觉得emacs很强大,即便是在多需折腾的windows下,即便有些功能可能确实没有linux下的方便,但是慢慢熟悉就好,还可以锻炼E文
[回复]
ahei 回复:
五月 21st, 2011 at 4:04 下午
@爵夅, 呵呵,不错
[回复]
我试了第二种方法,但是出错如下,不知道是为什么
Warning (initialization): An error occurred while loading `c:/Documents and Settings/XXX/Application Data/.emacs’:
File error: Cannot open load file, d:/Tools/_emacs
[回复]
zw 回复:
六月 28th, 2011 at 9:09 上午
@zw, 是偶搞错了。。
[回复]
我刚开始使用emacs 23.3 for windows时emacs运行正常,启动速度和打开、保存文件速度都很快,过了几个月后开始变得很慢,启动要等好几分钟,有时打开或保存一个文件也需要几分钟,后来我把自己的配置文件删掉,仍然有这样的问题,这不会是windows版的bug吧,我Debian下使用就没碰到这种问题
不知道大家是否碰到这个问题,有没有解决方法?
[回复]
只能说你不懂emacs
[回复]
只能说3楼不懂emacs………….哥用ahei的配置 ….一样在windows下混……
[回复]