2009-06-05 14 views
3

GNU EmacsからXemacsに徐々に移行したいと思います。私は2つをうまく動かすために使うことができるトリックはありますか?GNU emacsとxemacsを共存させる良い方法は何ですか

現在、私は次の問題を参照してください。

のxemacsを 2がお互いに.elcファイルを好きではないの.emacsを変更します。

ありがとうございます!

+0

xemacsとemacs cohabitating?国連によると、これは合法だとは思わなかった。 – Cheeso

答えて

6

興味深いことに、私はXEmacsがかなり休止していると思うので(xemacs-announceリストの活動に基づいて)、ほとんどの方が別の方向に動いているようです。単純なパッケージは共存することができますが、多くの人々はXEmacsとEmacsの両方でパッケージを動作させることをあきらめています。

しかし、あなたの質問に答えて、あなたの.emacsを両方で動かすために、私は2つの間で関数変換を行うためのルーチンを書き始めます。例えば、ある時点で、私はこれを必要なのXEmacsで動作するように私の.emacsを取得する:

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

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

他のものは、私は、変数GNUに保存されているEmacsの変種、でトリガされました私はの.emacsコンパイルされたファイルを保持し、これをしなかった:

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

コンパイルされたパッケージについては、私はおそらく((emacsの-lispのを言う)1つのディレクトリ内のすべての.elファイルを保存するが、XEmacsのバリアントを持っていると思いますxemacs-リsp)を.elファイルへのシンボリックリンクで置き換えます。そして、適切なEmacsの亜種から各ディレクトリをバイトコンパイルし、あなたのロードパスが正しいものを指していることを確認してください。

Emacsのwikiには、Emacs versus XEmacsというページがあります。これは、それらを共存させるためのヒントを見つけるのに適しています。具体的には、customizing bothのページがあります。

2

最近のシステムでは、私はもはやプリコンパイルされたelispファイルの必要性を感じません。 .el-fileを変更することで、飛行機を探したり、飛行機に乗ったりする利点はずっと高くなります。

の.emacsは:、.emacs_startupで独自の定義を入れて(またはあなたがprefere名前がある)と、そこにすべてのあなたのGNU-enmacsのものを入れて、あなたの.emacs

4

私はXEmacsのを使用しないで条件付きの負荷をかけます新しいGNU emacsは.emacs.d/init.elもチェックするので、おそらく.emacsの内容を​​に移動することは意味があります。さらに、カスタマイゼーションを両者に適用し続けることができれば、.xemacs/init.elにリンクすることもできます。

emacswikiで好きなemacsについての議論もあります。

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)) 

マイ〜/ .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の提案がうまくいくと推測しています。

関連する問題