XEmacsと他のEmacsを共存させる。
windows です。linuxでも通用するかもしれませんが試していません。多分同じなんじゃないかな。(というか emacs あるのに xemacs 入れるやつは普通いない:P)
ファイル構成
まずファイル構成ですが、
■XEmacsのファイル構成 ~/.emacs (設定ファイルのエントリーポイント) ~/.xemacs/init.el (初期設定ファイル) ~/.xemacs/custom.el (ユーザーカスタマイズ)
XEmacsでは ~/.emacs で ~/.xemacs デリレクトリ参照設定を行います。このため 本家 Emacs と異なり、~/.emacs の省略が出来ないようです。~/.emacs が存在しないと自動的に生成します。
また、他の emacs の為に .emacs が作ってあった場合、XEmacs用に勝手に書き換えてしまいます(書き換え確認メッセージはありますが)。既存の .emacs の設定は無くなってしまいます。
■Emacsのファイル構成 ~/.emacs (設定ファイルエントリポイント) ~/.emacs.d/ (上以外の設定ファイルを保存するデリレクトリ)
本家 Emacs では 設定ファイルのエントリポイントは、~/.emacs 又は ~/.emacs.d/init.el です。~/.emacs があればそちらを読み込みますが無ければ ~/.emacs.d/init.el が読み込まれます。
しかし、先に述べたように XEmacs では ~/.emacs が必須です。ですので、本家 Emacs も、~/.emacs をエントリポイントにせざるをえません。
共存環境作成手順
- 1. 既に ~/.emacs ファイルが存在している場合、~/.emacs.d/init.el にリネーム。
- 2. XEmacsを起動して、~/.emacs を自動生成させる。
- 3. ~/.emacs を次のように書き換える。
(cond ;; XEmacs 21 ((string-match "XEmacs" (emacs-version)) ;; この部分は XEmacs が自動生成したものをそのまま入れておく (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" "~"))) (load-file user-init-file) (load-file custom-file)) ;; その他 Emacs (t (load-file "~/.emacs.d/init.el")))