我把每個類型的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
。