首页 > windows, 初级 > Windows下设置Emacs的HOME目录

Windows下设置Emacs的HOME目录

2010年4月22日 ahei 发表评论 阅读评论

作者: 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目录,但是,系统是按什么顺序来解析它们的呢?大体上的顺序是这样的:

  1. 如果设置了环境变量HOME,则使用HOME指定的目录。
  2. 如果设置了注册表里的值HKCU\SOFTWARE\GNU\Emacs\HOME,则使用这个值所指定的目录作为home目录。并不是太推荐使用这种方法,因为会导致用户共享一个home目录。
  3. 如果 C:\.emacs 文件存在,则使用 C:\.emacs 这个文件。这个是为了向低版本的Emacs兼容,因为低版本的Emacs就是默认用这个文件作为配置文件。
  4. 把用户的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了。

分享家:Addthis中国
GD Star Rating
loading...
Windows下设置Emacs的HOME目录, 8.6 out of 10 based on 18 ratings 标签:Emacs, screenshot, waterlin, windows, 配色, 配色

相关日志

分类: windows, 初级
  1. 爵夅
    2011年4月15日13:15 | #1

    虽然下的是Windows的版本,现在了解的多了。。配置的多了。。就想说万恶的Windows。。。这么这么好用的软件到Windows上,有些功能就这么麻烦呢。。。

    [回复]

    ahei 回复:

    @爵夅, 本来就是阿,换系统吧

    [回复]

    爵夅 回复:

    @ahei, 表示换系统工程浩大。。而且目前似乎还是需要Windows啊。。学校里有的时候教某个软件的使用都是Windows下的。。。毕竟不是计算机专业呢。。

    [回复]

  2. 爵夅
    2011年5月12日10:37 | #2

    在网上有搜到在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 回复:

    @爵夅, 呵呵,不错

    [回复]

  3. 匿名
    2011年5月12日15:24 | #3

    windows下能在 emacs中执行 telnet命令么。
    我执行了下,没有反映,

    [回复]

    ahei 回复:

    @, 可以

    [回复]

  4. 爵夅
    2011年5月20日00:10 | #4

    在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 回复:

    @爵夅, 呵呵,不错

    [回复]

  5. zw
    2011年6月27日13:29 | #5

    我试了第二种方法,但是出错如下,不知道是为什么

    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 回复:

    @zw, 是偶搞错了。。

    [回复]

  6. cosmfly
    2011年7月28日09:51 | #6

    我刚开始使用emacs 23.3 for windows时emacs运行正常,启动速度和打开、保存文件速度都很快,过了几个月后开始变得很慢,启动要等好几分钟,有时打开或保存一个文件也需要几分钟,后来我把自己的配置文件删掉,仍然有这样的问题,这不会是windows版的bug吧,我Debian下使用就没碰到这种问题

    不知道大家是否碰到这个问题,有没有解决方法?

    [回复]

  7. 匿名
    2012年2月3日03:24 | #7

    只能说你不懂emacs

    [回复]

  8. 匿名
    2012年2月3日03:26 | #8

    只能说3楼不懂emacs………….哥用ahei的配置 ….一样在windows下混……

    [回复]

评论分页
1 2 41188
  1. 2010年5月12日10:23 | #1
  2. 2010年7月15日15:52 | #2
  3. 2010年11月1日09:53 | #3
  4. 2011年1月23日02:20 | #4
:wink: :-| :-x :twisted: :) 8-O :( :roll: :-P :oops: :-o :mrgreen: :lol: :idea: :-D :evil: :cry: 8) :arrow: :-? :?: :!: