首页 > 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.7 out of 10 based on 20 ratings 标签:Emacs, screenshot, waterlin, windows, 配色, 配色

相关日志

分类: windows, 初级
  1. x
    2010年4月22日08:43 | #1

    第二种方法会产生一个问题,会打不开原来home目录下的文件,需要再 (setq abbreviated-home-dir nil) 一下才行,后续这个变量会在call abbreviate-file-name 时设置正确的。

    [回复]

    ahei 回复:

    @x, 不知道你的”会打不开原来home目录下的文件”是什么意思?

    [回复]

    ifelseif 回复:

    @ahei, 就是目录错乱了
    比方说我用vista,默认home是C:/Users/XXXXX
    用第二种方法(setenv “HOME” “E:/mynewhome”)
    弄完之后c-x c-f可以选择到C:/Users/XXXXX下面的文件,但是打开之后都是空的
    emacs自己在E:/mynewhome下面新建了一个文件

    [回复]

    ahei 回复:

    我测试了下,可以正常打开文件啊,你再好好测试一下.

    [回复]

    匿名 回复:

    @x,
    确实按第二种方法就不能打开原来的¥HOME目录了,
    用x 介绍的(setq abbreviated-home-dir nil)才行,不过不知道这个设置还有别的影响不?

    [回复]

    匿名 回复:

    @x,
    谢谢啦,开始照文中所说操作,在默认HOME的.emacs里怎么都保持不了,添加了(setq abbreviated-home-dir nil)语句就可以。

    [回复]

  2. 2010年4月29日13:20 | #2

    Windows 7 64bit下注册表的位置有所不同了,见如下reg文件

    Windows Registry Editor Version 5.00

    [HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\GNU]

    [HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\GNU\Emacs]
    “Emacs.HOME”=”D:\\Common\\EmacsHome”
    “Emacs.Background”=”Black”
    “Emacs.Foreground”=”Wheat”
    “Emacs.Geometry”=”125×45+70+0″

    [回复]

  3. 小和平鸽
    2010年8月20日07:39 | #3

    一方面 Emacs 本身在 Windows 环境下能够处理的文件类型比较有限,另一方面,Emacs 和 shell 环境加在一起可以做很多事情。所以在 Windows 环境下我觉得还是推荐使用 Cygwin + X + Emacs 的方案。这么多年里面偶自己就是这样用的。看楼上的文章,虽然没有明说,但是貌似说的是 Windows native 的 Emacs,有人能来说一下这种方法用 Emacs 有什么好处吗?

    [回复]

  4. 匿名
    2010年11月26日11:01 | #4

    请问第二种方法说的“E:\water\.emacs” 这个路径我怎么知道在哪或者说怎么去找它 ? 谢谢

    [回复]

    ahei 回复:

    @, 就是你自己.emacs路径阿

    [回复]

    匿名 回复:

    意思是说,我第一次解压出来后,如果我没配置.emacs 就不会有这个文件是把? 是这样的话我知道了 谢谢

    [回复]

    ahei 回复:

    @, 是这个意思

    [回复]

  5. 匿名
    2010年11月26日17:01 | #5

    你好 我是初学者 我想问一下,我想显示行号,要怎么弄类? 我是windows用户,也没配置过我的emacs

    [回复]

    匿名 回复:

    @,知道了 谢谢

    [回复]

    ahei 回复:

    @, M-x linum-mode

    [回复]

  6. 8910
    2010年12月17日15:03 | #6

    我是用的是emacs 24.0,按照第二种方法设置了。但是是 C-x C-f 打开文件还是解压emacs的bin目录。我怎么设置打开文件的默认是我的工作目录呢? :wink:

    [回复]

    ahei 回复:

    @8910, ….这个…我也不知道

    [回复]

    匿名 回复:

    @8910, (setq-default default-directory (expand-file-name “~/”))

    [回复]

  7. telancs
    2011年1月1日15:20 | #7

    恩恩,这个不错,很好,谢谢.

    [回复]

  8. 杨焕宁
    2011年3月17日13:19 | #8

    EMACS23.3在windows下怎么装啊 ?求助高手。

    [回复]

  9. 杨焕宁
    2011年3月17日13:20 | #9

    Windows下EMACS怎么装啊?

    [回复]

    ahei 回复:

    @杨焕宁, 直接去官网下个,直接安装就ok了,再不会就google

    [回复]

  10. tlh
    2011年4月8日19:04 | #10

    你好,我用的是winxp下的emacs,我想问一下,emacs启动的时候除了加载.emacs文件还加载其他的文件吗?具体的启动过程是怎样的?谢谢! :wink:

    [回复]

    ahei 回复:

    @tlh, 不加载其他的了

    [回复]

    tlh 回复:

    @ahei, 谢谢! 我还想问一下,怎么在xp下,利用runemacs 建立后台服务器,再用emacsclientw 作为客户机来实现快速打开emacs ,一个一个打开实在是太慢了。

    [回复]

    ahei 回复:

    @tlh, see http://emacser.com/c-fast-start.htm

    [回复]

    tlh 回复:

    @ahei, win32下没有deamon模式,我在跑client的时候每次都是打开一个frame(没有在同一个frame里面打开),这样速度还是很慢,环境变量设置了ALTER_EIDTER 还有 EMACS_SEVER_FILE。

    [回复]

评论分页
1 2 3 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: :-? :?: :!: