以前一直在linux下用emacs,今天切到windows,想沿用linux下的配置,于是,琢磨了一番。

emacs默认配置在windows的目录是 C:/Documents and Settings/xxx/Application Data 太难找了,改进下,统一放到一个目录下:emacs安装位置所在的site-lisp,把我以前所有配置都放里面,以后可以直接把emacs安装文件夹打包,放到优盘里面即可使用。备份也只需要备份site-lisp文件夹,不用到处找。

最终目录结构如下: 代码:

emacs安装目录:
     | -- bin 启动文件所在
     | -- site-lisp 所有自定义配置所在
     | --  ……  其他文件
     ……

在解压的emacs目录中,在site-lisp文件夹下,新建一文件 site-start.el,输入如下内容:

;;设置根目录,init.el和linux下通用

(if (memq window-system '(w32))
    (progn
      (defvar present-emacs-directory (substring data-directory 0 -4)) ;;找到当前emacs安装目录
      (defvar portable-home-directory (format "%s" (concat present-emacs-directory "site-lisp/"))) ;;设定的新根目录
      (setenv "HOME" portable-home-directory)
      (setenv "PATH" portable-home-directory)
      ))

目前在win xp emacs24测试有效,其他的大家去测试吧。

win7 emacs24.4 则上面代码结构有变

emacs安装目录:
     | -- bin 启动文件所在
     | -- share -- emacs -- 24.4 -- site-lisp 所有自定义配置所在
     | --  ……  其他文件
     ……

代码改为:

;;设置根目录,init.el和linux下通用

(if (eq system-type 'windows-nt)
    (progn
      (defvar present-emacs-directory (substring data-directory 0 -4)) ;;找到当前emacs安装目录
      (defvar portable-home-directory (format "%s" (concat present-emacs-directory "site-lisp/"))) ;;设定的新根目录
      (setenv "HOME" portable-home-directory)
      (setenv "PATH" portable-home-directory)
      ))