世の中には様々な環境が存在します。1 それぞれに設定ファイルを作成するのは大変面倒です。 なので、現在 Emacs が動いている環境がどのようなものなのか分かれば、同じテーマの設定ファイルをいくつも作らなくて済みますよね。
ここではそのような環境を判別するための変数を定義します。
例えば、以下は XEmacs であれば t
を返します。 2
Hello 2
これだけでは心もとないので、同名の関数を作成3し:
それを評価した後の値を設定します。
(setq xemacsp (xemacsp))
(setq xemacs-no-mule-p (and (not (featurep 'mule))
xemacsp))
同じ様に、Emacs のメジャー・バージョン毎に定義します。
Meadow 用の環境判別用変数ですが…、Windows 用の本家 Emacs がちゃんと動くようになったのであんまり必要ないかもしれません。
次は OS を判別する変数を定義します。
system-configuration
を使えばよいのですが、めんどくさいので system-type
を使っています。
ウィンドウ・システムを使っていない場合は character-based-terminal-p
が t
になります。
Linux においてはデスクトップ環境の不具合などで Emacs を CUI 上で動かすことがあるかもしれません。
1 プラットフォームとも。要するに OS のこと。とはいえ、一口に環境と云っても OS なのか、Emacs 本体のバージョンやその他の emacsen なのか、はたまたデスクトップ環境なのかで色々と違ってくる。
2 XEmacs を使ったことがないのでそうなるのかは不明。
3 そんなことする必要はないという説も。