Next: initファイル内の非ASCII文字, Previous: 端末固有の初期化, Up: Emacs初期化ファイル [Contents][Index]
通常だとEmacsはホームディレクトリー配下からinitファイルを探します25。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
にセットします。こそれ以降このディレクトリーはcustom-file
(カスタマイズの保存を参照)や、デスクトップの保存(Emacsセッションの保存を参照)等に使用されます。コマンドラインオプション--init-directory
(初期化オプションを参照)は、上述したinitファイル検索の副作用として決定される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は環境変数LOGNAME
とUSER
からユーザー名を取得します。どちらも存在しない場合、実効ユーザーIDを使用します。ユーザー名が実ユーザーIDとマッチしたとき、EmacsはHOME
を使用します。そうでない場合、Emacsはシステムのユーザーデータベースの、そのユーザー名に対応するホームディレクトリーを探します。
簡略化のためにEmacsドキュエントの残りの部分では、一般的にはinitファイルにたいして単にカレントデフォルト位置~/.emacs.d/init.elを使用します。
MS-Windowsではすべてのプログラムによってユーザーの“ホームディレクトリー”とみなされるような単一のディレクトリーは存在しません。Emacsはあなたのホームディレクトリーとして相応しいようなディレクトリーのうちの1つを使用します。詳細についてはMS-WindowsでのHOMEディレクトリーと開始ディレクトリーを参照してください。