Next: , Previous: , Up: Emacs初期化ファイル   [Contents][Index]


50.4.4 Emacsがinitファイルを探す方法

Emacsは通常はホームディレクトリー配下でinitファイルを探します。Emacs初期化ファイルを参照してください。

Emacsは~/.emacs.el~/.emacs~/.emacs.d/init.elというファイル名で、この順序でinitファイルを探します。これらの名前のどれを使用するか選択できます(ホームディレクトリー直下の場所だけが場所のベース名として先頭にドットをもつことに注意)。

EmacsはXDG互換の場所でもinit.elを探します。デフォルトはディレクトリー~/.config/emacsです。これは環境変数XDG_CONFIG_HOMEをセットしてオーバーライドできます。この値はデフォルトのXDG initファイルの名前の~/.configを置き換えます。しかし~/.emacs.d~/.emacs~/.emacs.elが存在する場合には常に優先されます。これはXDGロケーションを使用するためには、それらの削除やリネームを行わなければならないことを意味します。

XDGロケーションと~/.emacs.dがいずれも存在しなければEmacsが~/.emacs.dを作成(したがって以降の呼び出しの間もそれが使用される)することにも注意してください。

Emacsは使用を決定したディレクトリーをuser-emacs-directoryんセットします。

これがたとえ古いバージョンのEmacsにたいする後方互換性のためだとしても、モダンなPOSIXプラットフォームは初期化ファイルを~/.configの配下に配置することを優先するので、誤ったinitファイルに起因する問題のトラブルシューティングやinitファイルコレクションのアーカイブはそのディレクトリーのリネームにより行うことができます。古いバージョンのEmacsがそれらのカレントのデフォルト位置で設定ファイルを見つけるのを助けるために、以下のEmacs Lispコードを実行することができます:

(make-symbolic-link ".config/emacs" "~/.emacs.d")

しかしsuで開始されたシェルからEmacsを実行して環境変数XDG_CONFIG_HOMEが未セットなら、Emacsは現在の見かけのユーザーではなく、あなた自身の初期化ファイルを探すことを試みます。このアイデアは、たとえスーパーユーザーとして実行しているときでも、自分のエディターカスタマイズを取得するべきだという考えです。

より正確には、最初にEmacsはどのユーザーのinitファイルを使用するか決定します。Emacsは環境変数LOGNAMEUSERからユーザー名を取得します。どちらも存在しない場合、実効ユーザーIDを使用します。ユーザー名が実ユーザーIDとマッチしたとき、EmacsはHOMEを使用します。そうでない場合、Emacsはシステムのユーザーデータベースの、そのユーザー名に対応するホームディレクトリーを探します。

簡略化のためにEmacsドキュエントの残りの部分では、一般的にはinitファイルにたいして単にカレントデフォルト位置~/.emacs.d/init.elを使用します。