Emacs が起動すると、以下の処理が行われます(startup.el の normal-top-level を参照)。
load-path
にサブディレクトリを追加します。通常、このファイルはディレクトリのサブディレクトリをリストに追加し、それらが順にスキャンされます。subdirs.el ファイルは通常、Emacs のインストール時に自動的に生成されます。
load-path ディレクトリ内で見つかった leim-list.el
ファイルをすべて読み込みます。このファイルは入力メソッドを登録するためのものです。検索対象となるのは、ユーザーが作成した個人用の leim-list.el ファイルのみであり、標準の Emacs
ライブラリが含まれるディレクトリは除外されます(これらのディレクトリには、Emacs の実行ファイルにコンパイルされる単一の leim-list.el ファイルのみが含まれているはずです)。
before-init-time に current-time の値を設定します(時刻を参照)。また、after-init-time に nil
を設定し、これにより Lisp プログラムに対して Emacs が初期化中であることを通知します。
LANG などの環境変数によって要求された場合、言語環境と端末のコーディングシステムを設定します。
custom-reevaluate-setting を使用して、リスト custom-delayed-init-variables
の要素を再初期化します。これらは、デフォルト値がビルド時ではなくランタイムのコンテキストに依存する、あらかじめロード済みのユーザーオプションです。custom-initialize-delay
を参照してください。
package-activate-all を呼び出します。パッケージングの基本 を参照してください。ただし、package-enable-at-startup が nil である場合や、オプションの ‘-q’、‘-Q’、または
‘--batch’
のいずれかを指定して起動した場合には、Emacsはパッケージを有効にしません。後者の場合にパッケージを有効にするには、package-activate-all を明示的に呼び出す必要があります(例:‘--funcall’ オプション経由)。
initial-window-system
が指定するウィンドウシステムを初期化します(initial-window-system を参照)。初期化関数 window-system-initialization はジェネリック関数(Generic Functions
を参照)であり、その実際の実装はサポートされている各ウィンドウシステムによって異なります。initial-window-system の値が windowsystem である場合、初期化関数の適切な実装がファイル term/windowsystem-win.el
で定義されています。このファイルは、Emacs の実行ファイルをビルドする際にコンパイルされているはずです。
before-init-hook が実行されます。
window-system-initialization関数を呼び出すことで、グラフィカルフレーム用にinitial-frame-alistおよびdefault-frame-alistで指定されたウィンドウシステムを初期化します(初期フレームパラメータを参照)。バッチ(非対話)モードまたはデーモンモードでは、この処理は行われません。
inhibit-default-init が nil
でない場合、またはオプション ‘-q’、‘-Q’、‘--batch’ が指定された場合は、この処理は行われません。
abbrev-file-name
で指定されたファイルが存在し、かつ読み取り可能な場合、そのファイルから略語を読み込みます(abbrev-file-name を参照)。オプション ‘--batch’ が指定されている場合は、この処理は行われません。
after-init-time に current-time
の値を代入します。この変数は先に nil
に代入されており、現在の時刻を代入することで初期化フェーズが終了したことを示し、before-init-time と合わせて所要時間の計測値となります。
after-init-hook と delayed-warnings-hook
が実行されます。後者は、起動の先行段階で出力された警告を表示しますが、これらは自動的に遅延処理されます。
initial-major-mode
に従ってメジャーモードを設定します。
tty-setup-hook を実行します。これは --batch モードでは行われず、また term-file-prefix が nil
である場合も行われません。
inhibit-startup-echo-area-message
で抑制していない限り、初期のエコー領域メッセージが表示されます。
--batch が指定された場合は、終了するようになりました。
(substitute-command-keys initial-scratch-message)
を挿入します。
initial-buffer-choice
が文字列の場合、その名前のファイル(またはディレクトリ)にアクセスします。関数の場合、引数なしでその関数を呼び出し、返されたバッファを選択します。コマンドライン引数として1つのファイルが指定された場合、そのファイルにアクセスし、そのバッファを
initial-buffer-choice
と並んで表示します。複数のファイルが指定された場合、すべてのファイルにアクセスし、*Buffer
List* バッファを initial-buffer-choice
と並んで表示します。
emacs-startup-hook が動作します。
frame-notice-user-settingsを呼び出し、initファイルの指定内容に応じて選択されたフレームのパラメータを変更します。
window-setup-hookが実行されます。このフックとemacs-startup-hookの唯一の違いは、こちらが前述のフレームパラメータの変更後に実行される点です。
inhibit-startup-screen または initial-buffer-choice が nil
でない場合、あるいはコマンドラインオプションの ‘--no-splash’
または ‘-Q’ が指定された場合は、この処理は行われません。
server-startを呼び出します。(POSIXシステムでは、バックグラウンドデーモンがリクエストされた場合、制御端末からデタッチします。)The GNU Emacs ManualのEmacs
Serverを参照してください。
emacs-session-restoreを呼び出します。セッション管理を参照してください。
以下のオプションは、起動シーケンスの一部の動作に影響します。
この変数が nil 以外の場合、起動画面は表示されません。その場合、Emacs は通常 *scratch* バッファを表示しますが、後述の initial-buffer-choice を参照してください。
新規ユーザーの初期化ファイルにこの変数を設定したり、複数のユーザーに影響が及ぶ形で設定したりしないでください。そうすると、新規ユーザーがコピーレフトやEmacsの基本的な使い方に関する情報を得られなくなります。
inhibit-startup-message と inhibit-splash-screen はこの変数のエイリアスです。
nil 以外の場合、この変数は、起動画面の代わりに Emacs
が起動後に表示するファイルまたはディレクトリを指定する文字列となります。値が関数である場合、Emacs
はその関数を呼び出し、その関数はバッファを返して表示させる必要があります。値が t
の場合、Emacs は *scratch* バッファを表示します。
この変数は、起動時のエコーエリアメッセージの表示を制御します。initファイルに以下の形式のテキストを追加することで、起動時のエコーエリアメッセージを抑制できます。
(setq inhibit-startup-echo-area-message
"your-login-name")
Emacsは、initファイル内で上記のように式が記述されているかを明示的にチェックします。ログイン名は、Lispの文字列定数としてその式に含まれている必要があります。また、Customizeインターフェースを利用することも可能です。inhibit-startup-echo-area-messageを同じ値に設定する他の方法では、起動メッセージを抑制することはできません。これにより、必要に応じて簡単にメッセージを抑制できますが、initファイルを不用意にコピーしても、他のユーザーのメッセージが抑制されることはありません。
この変数が nil 以外の場合は文字列である必要があり、Emacs
の起動時または当該バッファが再作成された際に *scratch*
バッファに挿入されるドキュメントとして扱われます。nil の場合は、*scratch* バッファは空です。
以下のコマンドラインオプションは、起動シーケンスの一部に影響を与えます。The GNU Emacs ManualのInitial Optionsを参照してください。
--no-splashスプラッシュ画面を表示しない。
--batch対話型ターミナルなしで実行します。バッチモードを参照してください。
--daemon--bg-daemon--fg-daemonディスプレイの初期化は行わず、サーバーを起動してください。(「バックグラウンド」デーモンが自動的にバックグラウンドで動作します。)
--no-init-file-qinitファイルおよびdefaultライブラリのいずれもロードしないでください。
--no-site-filesite-startライブラリをロードしないでください。
--quick-Q「-q --no-site-file --no-splash」に相当します。
--init-directoryEmacsの初期化ファイルを探す際に使用するディレクトリを指定します。