我把每个类型的emacs设置放入一些单独的文件中,比如load-cygwin.el,load-cedet.el等。并且使用一个subverion在任何地方和任何时间共享它们。emacs如何在初始化时不加载某些.el文件?
现在对于load-cygwin.el,它只需要在Windows平台上,但每次我在Linux平台上同步这些配置时,我必须将其删除。
emacs如何在初始化时不加载load-cygwin.el文件?我需要一些条件来跳出文件?
谢谢。
我把每个类型的emacs设置放入一些单独的文件中,比如load-cygwin.el,load-cedet.el等。并且使用一个subverion在任何地方和任何时间共享它们。emacs如何在初始化时不加载某些.el文件?
现在对于load-cygwin.el,它只需要在Windows平台上,但每次我在Linux平台上同步这些配置时,我必须将其删除。
emacs如何在初始化时不加载load-cygwin.el文件?我需要一些条件来跳出文件?
谢谢。
有不同的方法来处理它。一种方法(我使用)
我根据主机名为每个系统分配一个名称。 (你也可以定义检查窗口系统/ emacs的vesrion/OS等..)
;;;;;;;;;;;;;; define systems ;;;;;;;;;;;;;;;;
(defvar on-laptop ; on my laptop, mostly I can run everything
(string-match "rag" (system-name)))
(defvar on-lab-computer ; main lab desktop
(string-match "okho" (system-name)))
(defvar on-lab-server ; lab cluster
(string-match "amu" (system-name)))
;;;;;;;;;;;;;;; Usage ;;;;;;;;;;;;;;;;;;;;;;;;;
(when on-laptop
;;; music/emms config
(load "emms-config.el"))
; load work related stuff
(when on-lab-computer
;; load work related
)
(when (not on-lab-server)
;;; some setup that are unnecessary on cluster, but useful on remaining systems
)
对于依赖于操作系统的设置,请检查system-type
variable:
(and (memq system-type '(cygwin windows-nt))
(load "load-cygwin"))
另一种方式来处理的条件要求是使用locate-library
function查看文件是否存在。 (这里假定load-cygwin.el
没有出现在你的Linux机器。)
(and (locate-library "load-cygwin")
(load "load-cygwin"))
对于这种条件要求另一个有用的变量是window-system
。