Emacsは起動時に以下の処理を行います(startup.el内のnormal-top-level
を参照):
load-path
の各ディレクトリー内にあるsubdirs.elという名前のファイルを実行してload-path
にサブディレクトリーを追加する。このファイルは通常はそのディレクトリー内にあるサブディレクトリーをこのリスト変数に追加して、それらを順次スキャンする。ファイルsubdirs.elは通常はEmacsインストール時に自動的に作成される。
load-path
のディレクトリー内で見つかったleim-list.elをすべてロードする。このファイルは入力メソッドの登録を意図している。この検索はユーザーが作成するかもしれない個人的なleim-list.elすべてにたいしてのみ行われる。標準的なEmacsライブラリーを含むディレクトリーはスキップされる(これらは単一のleim-list.elだけに含まれるべきでありEmacs実行形式にコンパイル済)。
before-init-time
にcurrent-time
の値をセットする(時刻を参照)。これはafter-init-time
にnil
をセットすることによりEmacs初期化時にLispプログラムへの合図も行う。
LANG
のような環境変数がそれを要するなら言語環境と端末のコーディングシステムをセットする。
package-activate-all
を呼び出す。パッケージ化の基礎を参照のこと。しかしpackage-enable-at-startup
がnil
、または‘-q’、‘-Q’、‘--batch’のいずれかのオプションで開始時には、Emacsはパッケージのアクティブ化をしない。後者のケースでパッケージをアクティブ化するには、(たとえば‘--funcall’オプションを通じて)明示的にpackage-activate-all
を呼び出すこと。
initial-window-system
が指定するウィンドウシステムを初期化する(initial-window-systemを参照)。初期化関数window-system-initialization
はジェネリック関数generic
functionであり、本当の実装はサポートされる各ウィンドウシステムごとに異なる(ジェネリック関数を参照)。initial-window-system
の値がwindowsystemなら、ファイルterm/windowsystem-win.el内で適切な初期化関数の実装が定義されている。このファイルはビルド時にEmacs実行可能形式にコンパイルされているはずである。
before-init-hook
を実行する。
initial-frame-alist
とdefault-frame-alist
(フレームの初期パラメーターを参照)により指定されたウィンドウシステム用のwindow-system-initialization
関数を呼び出すことにより、そのウィンドウシステムのグラフィカルなフレームを初期化する。これは(非インタラクティブな)batchモードやデーモンモードでは行われない。
custom-delayed-init-variables
内のメンバーを再初期化するためにcustom-reevaluate-setting
を使用する。これらのメンバーは、デフォルト値がビルド時ではなく実行時のコンテキストに依存する、すべての事前ロード済ユーザーオプションである。custom-initialize-delayを参照のこと。
inhibit-default-init
が非nil
、あるいはオプション‘-q’、‘-Q’、または‘--batch’指定された場合には行われない。
abbrev-file-name
で指定されるファイルからユーザーのabbrevをロードする(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
が指定されていたら、ここでexitする。
(substitute-command-keys
initial-scratch-message)
を挿入する。
initial-buffer-choice
が文字列ならその名前のファイル(かディレクトリー)をvisitする。関数なら引数なしでその関数を呼び出して、それがリターンしたバッファーを選択する。コマンドライン引数として単一のファイルが与えられた場合にはファイルをvisitして、そのバッファーをinitial-buffer-choice
のそばに表示する。複数のファイルが与えられた場合にはすべてのファイルをvisitして、initial-buffer-choice
のそばに*Buffer
List*バッファーを表示する。
emacs-startup-hook
を実行する。
frame-notice-user-settings
を呼び出す。
window-setup-hook
を実行する。このフックとemacs-startup-hook
の違いは前述したフレームパラメーターの変更後にこれが実行される点のみ。
inhibit-startup-screen
かinitial-buffer-choice
が非nil
、あるいはコマンドラインオプション‘--no-splash’か‘-Q’が指定されていたら行われない。
server-start
を呼び出す(POSIXシステムではバックグラウンドのデーモンが要求された場合には制御端末からデタッチされる)。Emacs
Server in The GNU Emacs Manualを参照のこと。
emacs-session-restore
を呼び出す。セッションマネージャーを参照のこと。
以下のオプションはスタートアップシーケンスにおけるいくつかの側面に影響を与えます。
この変数が非nil
ならスタートアップスクリーンを抑制する。この場合にはEmacsは通常は*scratch*バッファーを表示する。しかし以下のinitial-buffer-choice
を参照されたい。
新しいユーザーがcopyleftやEmacsの基本的な使い方に関する情報を入手するのを防げるので、新しいユーザーのinitファイル内や複数ユーザーに影響するような方法でこの変数をセットしてはならない。
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
をセットしてもスタートアップメッセージは抑制されない。この方法により望むならユーザー自身で簡単にメッセージを抑制できるが、単に自分用のiniファイルを別のユーザーにコピーしてもメッセージは抑制されないだろう。
この変数が非nil
なら、Emacsのスタートアップやこのバッファーの再作成の際に*scratch*バッファーに挿入するドキュメントとして扱われる文字列であること。nil
なら*scratch*バッファーは空になる。
以下のコマンドラインオプションはスタートアップシーケンスにおけるいくつかの側面に影響を与えます。Initial Options in The GNU Emacs Manualを参照してください。
--no-splash
スプラッシュスクリーンを表示しない。
--batch
対話的な端末なしで実行する。batchモードを参照のこと。
--daemon
--bg-daemon
--fg-daemon
表示の初期化を何も行わず単にサーバーを開始する(“バックグラウンド”のデーモンは自動的にバックグラウンドで実行される)。
--no-init-file
-q
initファイルとdefaultライブラリーをいずれもロードしない。
--no-site-file
site-startライブラリーをロードしない。
--quick
-Q
‘-q --no-site-file --no-splash’と等価。
--init-directory
Emacsのinitファイルを探す際に使用するディレクトリーを指定する。