Emacsの開始時は通常はユーザーのinitファイル(init file)のロードを試みます。これはユーザーのホームディレクトリー内にある.emacsか.emacs.elという名前のファイル、あるいはホームディレクトリーの.emacs.dという名前のサブディレクトリー内にあるinit.elという名前のファイルのいずれかのファイルです。
コマンドラインスイッチ‘-q’、‘-Q’、‘-u’はinitファイルを探すべきか、およびどこで探すべきかを制御します。‘-u
user’はそのユーザーではなくuserのinitファイルのロードを指示しますが、‘-q’
(‘-Q’のほうが強力)はinitファイルをロードしないことを指示します。Entering Emacs in The
GNU Emacs
Manualを参照してください。いずれのオプションも指定されていなければユーザーのホームディレクリーからinitファイルを探すために、Emacsは環境変数LOGNAME
、USER
(ほとんどのシステム)、またはUSERNAME
(MSシステム)を使用します。この方法によりたとえsuしていたとしても、依然としてEmacsはそのユーザー自身のinitファイルをロードできるのです。これらの環境変数が存在していなくてもEmacsはユーザーIDからユーザーのホームディレクトリーを探します。
Emacsは早期initファイル(early init file)と呼ばれる2つ目のinitファイルが存在すれば、それのロードも試みます。これは~/.emacs.dにあるearly-init.elという名前のファイルです。早期initファイルはスタートアッププロセスのより速いタイミングでロードされるために、通常のinitファイルのロード前に初期化される何かをカスタマイズするために使用できるのが早期initファイルと通常のinitファイルの違いです。たとえばpackage-load-listやpackage-enable-at-startupのような変数をセットしてパッケージシステムの初期化プロセスをカスタマイズできます。Package Installation in The GNU Emacs Manualを参照してください。
インストールしたEmacsによってはdefault.elというLispライブラリーのデフォルトinitファイル(default
init file)が存在するかもしれません。Emacsはライブラリーの標準検索パスからこのファイルを探します(プログラムがロードを行う方法を参照)。このファイルはEmacsディストリビューション由来ではありません。このファイルはローカルなカスタマイズを意図しています。デフォルトinitファイルが存在する場合には常にこのファイルがEmacs開始時にロードされます。しかしユーザー自身のinitファイルが存在する場合にはそれが最初にロードされます。それによりinhibit-default-init
が非nil
値にセットされた場合には、Emacsは後続するdefault.elファイルのロードを行いません。batchモードまたは‘-q’
(または‘-Q’)を指定した場合には、Emacsは個人的なinitファイルトでデフォルトinitファイのいずれもロードしません。
サイトのカスタマイズのためのファイルはsite-start.elです。Emacsはユーザーのinitファイルの前にこれをロードします。オプション‘--no-site-file’により、このファイルのロードを抑制できます。
この変数はユーザーのinitファイルの前にロードするサイト用のカスタマイズファイルを指定する。通常の値は"site-start"
。実際に効果があるようにこれを変更するには、Emacsのdump前に変更するのが唯一の方法である。
一般的に必要とされる.emacsファイルのカスタマイズ方法についてはInit File Examples in The GNU Emacs Manualを参照のこと。
この変数が非nil
ならEmacsがデフォルトの初期化ライブラリーファイルをロードするのを防ぐ。デフォルト値はnil
。
このノーマルフックはすべてのinitファイル(site-start.el、ユーザーのinitファイル、およびdefault.el)のロード直前に一度実行される(実際に効果があるようにこれを変更するにはEmacsのdump前に変更するのが唯一の方法)。
このノーマルフックはすべてのinitファイル(site-start.el、ユーザーのinitファイル、およびdefault.el)のロード直後、端末固有ライブラリーのロードとコマンドラインアクション引数の処理の前に一度実行される。
このノーマルフックはコマンドライン引数の処理直後に一度実行される。batchモードでは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を意味する。How Emacs Finds Your Init File in The GNU Emacs Manualを参照のこと。