Emacsを起動すると、通常は初期化ファイルの読み込みが試みられます。これは、ホームディレクトリにある.emacsまたは.emacs.elという名前のファイルか、あるいはホームディレクトリ内の.emacs.dというサブディレクトリにあるinit.elという名前のファイルのいずれかです。
コマンドラインスイッチの ‘-q’、‘-Q’、および ‘-u’
は、initファイルの有無およびその検索場所を制御します。‘-q’(およびより強力な ‘-Q’)はinitファイルを読み込まないことを指定し、‘-u user’ は自身のファイルの代わりに user’ のinitファイルを読み込むことを指定します。The
GNU Emacs Manual の Entering
Emacs を参照してください。いずれのオプションも指定されていない場合、Emacsは環境変数 LOGNAME、あるいは USER(ほとんどのシステム)または
USERNAME(MSシステム)を使用してホームディレクトリ、ひいてはinitファイルを検索します。この仕組みにより、su’
した後でもEmacsは自身のinitファイルを読み込みます。ただし、これらの環境変数が存在しない場合、EmacsはユーザーIDを使用してホームディレクトリを検索します。
Emacsはまた、早期初期化ファイルと呼ばれる2つ目の初期化ファイルが存在する場合、それを読み込もうとします。これは~/.emacs.dディレクトリにあるearly-init.elという名前のファイルです。早期初期化ファイルと通常の初期化ファイルの違いは、早期初期化ファイルが起動プロセスのはるかに早い段階で読み込まれる点にあり、そのため、通常の初期化ファイルが読み込まれる前に初期化される一部の項目をカスタマイズできます。例えば、package-load-listやpackage-enable-at-startupといった変数を設定することで、パッケージシステムの初期化プロセスをカスタマイズできます。The GNU Emacs Manualのパッケージのインストールを参照してください。
Emacsのインストール環境にはデフォルトのinitファイルが存在する場合があり、これはdefault.elという名前のLispライブラリです。Emacsは、ライブラリの標準的な検索パスを通じてこのファイルを検出します(プログラムの読み込み方法を参照)。Emacsのディストリビューションにはこのファイルは含まれておらず、ローカルでのカスタマイズを目的としています。デフォルトのinitファイルが存在する場合、Emacsを起動するたびに読み込まれます。ただし、独自のinitファイルがある場合は、それが先に読み込まれます。そのファイルでinhibit-default-initにnil以外の値が設定されている場合、Emacsはその後default.elファイルを読み込みません。バッチモードの場合、または‘-q’(あるいは‘-Q’)を指定した場合、Emacsは独自のinitファイルもデフォルトのinitファイルも読み込みません。
サイトカスタマイズ用のもう一つのファイルは site-start.el です。Emacs は、ユーザーの init ファイルよりも先にこのファイルを読み込みます。オプション ‘--no-site-file’ を指定することで、このファイルの読み込みを抑制できます。
この変数は、ユーザーの初期初期化ファイルおよび通常の初期化ファイルよりも先に読み込むサイトカスタマイズファイルを指定します。通常の値は "site-start"
です。実際に変更を反映させる唯一の方法は、Emacsをダンプする前に変更を行うことです。
.emacs ファイルで一般的によく求められる各種カスタマイズを行う方法の例については、The GNU Emacs Manual の Init File Examples を参照してください。
この変数が nil 以外の場合、Emacs
がデフォルトの初期化ライブラリファイルを読み込むのを防ぎます。デフォルト値は nil です。
この通常のフックは、すべてのinitファイル(site-start.el、自身のinitファイル、およびdefault.el)を読み込む直前に一度だけ実行されます。(実際に効果を持たせるために変更できる唯一のタイミングは、Emacsをダンプする前です。)
この通常のフックは、すべてのinitファイル(site-start.el、自身のinitファイル、およびdefault.el)を読み込んだ直後、ターミナル固有のライブラリを読み込む前(テキストターミナルで起動した場合)、かつコマンドラインのアクション引数を処理する前に、一度だけ実行されます。
この通常のフックは、コマンドライン引数の処理直後に一度だけ実行されます。バッチモードでは、Emacsはこのフックを実行しません。
この通常のフックは emacs-startup-hook
と非常によく似ています。唯一の違いは、フレームパラメータの設定後、わずかに遅れて実行される点です。window-setup-hook を参照してください。
この変数には、ユーザーのinitファイルの絶対ファイル名が格納されます。実際にロードされるinitファイルが.emacs.elcのようなコンパイル済みファイルである場合、その値は対応するソースファイルを指します。
この変数には、Emacsのデフォルトディレクトリ名が格納されます。当該ディレクトリが存在し、かつ ~/.emacs.d/ と ~/.emacs
が存在しない場合はデフォルトで ${XDG_CONFIG_HOME-'~/.config'}/emacs/ となり、それ以外の場合は
MS-DOS を除くすべてのプラットフォームで ~/.emacs.d/
となります。ここで、${XDG_CONFIG_HOME-'~/.config'} は、環境変数
XDG_CONFIG_HOME が設定されている場合はその値を、そうでない場合は ~/.config を表します。The GNU Emacs
Manual の How
Emacs Finds Your Init File を参照してください。