2009-06-05 15 views
3

我想逐步從GNU Emacs轉換到Xemacs。我可以用這兩種方法讓這兩個球發揮出色嗎?有什麼好的做法來獲得GNU emacs和xemacs共居點

目前,我看到了以下問題:

xemacs的變造的.emacs 兩個都不喜歡對方.elc文件。

謝謝!

+0

xemacs和emacs cohabitating?根據聯合國的說法,我不認爲這是合法的。 – Cheeso 2009-06-08 17:01:13

回答

6

有趣的是,大多數人似乎都在朝另一個方向前進,因爲我相信XEmacs會處於休眠狀態(基於xemacs-announce列表的活動)。簡單的軟件包可以共存,但許多人已經放棄在XEmacs和Emacs中使它們的軟件包工作。

但是,在回答你的問題時,爲了讓你的.emacs在兩者中都起作用,我會開始編寫一些例程在兩者之間進行函數轉換。例如,在一個點上,我需要這讓我的.emacs在XEmacs的工作:

(if (not (fboundp 'tags-table-files)) 
    (defun tags-table-files() 
     (tag-table-files tags-file-name))) 

其他事情引發了Emacs的變種,我存儲在一個變量GNU:

(setq GNU (not (string-match "XEmacs\\|Lucid" (emacs-version)))) 
(if GNU 
    (do-emacs-thing) 
    (do-xemacs-thing)) 

我是保持編譯的.emacs文件,這樣做:

(setq compiled-dot-emacs-name (format ".emacs-%d%s" emacs-major-version 
                (if GNU "" "X"))) 

關於編譯包,我可能所有的.el文件存儲在一個目錄(emacs的說,口齒不清),但有一個xemacs的變種(xemacs-裏sp)與符號鏈接到.el文件。然後,您只需從適當的Emacs變體中字節編譯每個目錄,並確保將負載路徑指向正確的一個。

Emacs wiki有一個Emacs versus XEmacs的頁面,這可能是一個很好的起點,可以找出其他提示使它們同居。具體來說,有一個customizing both的頁面。

2

在現代系統上,我看不到需要預編譯的elisp文件了。在查看和實時更改.el-files文件的好處要高得多。

的.emacs:把自己定義.emacs_startup(或名字,你prefere),並把所有的GNU enmacs的東西有,把一個條件加載在你的.emacs

4

我不使用XEmacs的,但更新的GNU emacs也會檢查.emacs.d/init.el,所以可能將.emacs文件移動到​​是有道理的。另外,如果您設法保持適用於兩者的自定義,則可以將其鏈接到.xemacs/init.el

還有關於什麼emacs更喜歡emacswiki的討論。

3

前段時間,我開始從Xemacs向Emacs緩慢移動。我現在每天都使用這兩種方法。爲了使轉換更平滑(一組初始化文件),我從http://xemacs.seanm.ca/_emacs中盜取了以下.emacs文件(但鏈接現已停止)。

(setq user-init-file 
     (expand-file-name "init.el" 
         (expand-file-name ".xemacs" "~"))) 
(setq custom-file 
     (expand-file-name "custom.el" 
         (expand-file-name ".xemacs" "~"))) 

(if (file-exists-p user-init-file) 
    (load-file user-init-file)) 
(if (file-exists-p custom-file) 
    (load-file custom-file)) 

My〜/ .xemacs/init。埃爾開始與:

(unless (boundp 'running-xemacs) 
    (defvar running-xemacs nil)) 
(setq load-path (cons "~/.elisp" load-path))    ; packages for both emacsen 
(if running-xemacs 
    (setq load-path (cons "~/.elisp/xemacs" load-path)) ; packages for Xemacs only 
    (setq load-path (cons "~/.elisp/gnuemacs" load-path))) ; packages for Gnuemacs only 

從那時起它是非常明顯的我有(偶爾(如果運行xemacs)...)。我也刪除了〜/ .elisp中的所有.elc文件,但我認爲Trey Jackson的建議可行。

相關問題