Emacsを開始したとき、Emacsは通常、初期化ファイル(initialization file)、短くはinitファイルから、Lispプログラムのロードを試みます。このファイルは、もし存在する場合は、Emacsをどのように初期化するかを指定します。Emacsが~/.emacs.el、~/.emacs.d/init.el、~/.config/emacs/init.el、またはその他の場所を探すにしても、伝統的に~/.emacsはinitファイルとして扱われます。Emacsがinitファイルを探す方法を参照してください。
Emacsのすべての設定が1つのディレクトリーにあると便利だと思うかもしれません。その場合には~/.emacs.d/init.el、またはXDG互換の~/.config/emacs/init.elを使用する必要があります。
コマンドラインスイッチ‘-q’により、initファイルのロードを抑止でき、‘-u’ (または‘--user’)で、別のユーザーのinitファイルを指定できます(初期化オプションを参照してください)。
デフォルトinitファイルが存在する場合もあります。これはdefault.elという名前のライブラリーで、ライブラリーにたいする標準の検索パスから探されます。Emacsディストリビューションには、そのようなライブラリーは含まれていませんが、あなたのサイトは、ローカルなカスタマイズのためにこれを作成しているかもしれません。このライブラリーが存在する場合、Emacsを開始したときは常にこれがロードされます(ただし‘-q’を指定した場合は除きます)。しかしinitファイルがあれば、それが最初にロードされるので、そこでinhibit-default-init
に非nil
をセットすれば、デフォルトinitファイルはロードされません。
あなたのサイトにはサイトスタートアップファイル(site startup file)もあるかもしれません。もし存在する場合、これはsite-start.elという名前です。default.elと同様に、Emacsはこのファイルを、Lispライブラリーにたいする標準の検索パスから探します。Emacsはこのライブラリーをinitファイルの前にロードします。このライブラリーのロードを抑止するには、オプション‘--no-site-file’を使用します。初期化オプションを参照してください。わたしたちは何かを変更する場合、site-start.elの使用を推奨しません。これを好まないユーザーもいるからです。変更をdefault.elに記述すれば、ユーザーはもっと簡単にそれをオーバーライドできます。
default.elやsite-start.elは、EmacsがLispライブラリーを検索する任意のディレクトリーに配置できます。変数load-path
(EmacsのためのLispコードによるライブラリーを参照してください)は、これらのディレクトリーを指定します。多くのサイトはこれらのファイルを、Emacsのインストールディレクトリーの中の、site-lisp(たとえば/usr/local/share/emacs/site-lisp)に配置します。
initファイルにたいするバイトコンパイル(Byte Compilation in the Emacs Lisp Reference Manualを参照してください)は推奨されていません。一般的にこれは開始時のスピードの大幅な改善はせず、ファイルをリコンパイルするのを忘れたときに問題を起こすことが多いのです。よりよい解決策は、Emacsサーバー(サーバーとしてのEmacsの使用を参照してください)を使用して、Emacsを開始する回数を減らすことです。initファイルで多くの関数を定義している場合、これらを(バイトコンパイルされた)別のファイルに移動して、それをinitファイルでロードします。
マイナーなカスタマイズを超えるような、実際のEmacs Lispプログラムを記述するつもりなら、Emacs Lisp Reference Manualを読むべきでしょう。 Emacs Lisp in the Emacs Lisp Reference Manualを参照してください。