Next: Init File, Up: Starting Up [Contents][Index]
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の値をセットする(Time of Dayを参照)。これはafter-init-timeにnilをセットすることによりEmacs初期化時にLispプログラムへの合図も行う。
LANGのような環境変数がそれを要するなら言語環境と端末のコーディングシステムをセットする。
initial-window-systemが指定するウィンドウシステムを初期化する(initial-window-systemを参照)。サポートされる各ウィンドウシステムにたいする初期化関数はwindow-system-initialization-alistにより指定される。initial-window-systemの値がwindowsystemならファイルterm/windowsystem-win.el内で適切な初期化関数が定義されている。このファイルはビルド時にEmacs実行可能形式にコンパイルされているべきである。
before-init-hookを実行する。
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’が指定されていたら行われない。
package-initializeを呼び出す。Packaging Basicsを参照のこと。しかしpackage-enable-at-startupがnil、または‘-q’、‘-Q’、‘--batch’のいずれかのオプションで開始時には、Emacsはパッケージの初期化をしない。後者のケースでパッケージを初期化するには、(たとえば‘--funcall’オプションを通じて)明示的にpackage-initializeを呼び出すこと。
after-init-timeにcurrent-timeの値をセットする。この変数は事前にnilにセットされている。これをカレント時刻にセットすることが初期化フェーズが終わったことの合図となり、かつbefore-init-timeと共に用いることにより初期化に要した時間の計測手段を提供する。
after-init-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’が指定されていたら行われない。
--daemonが指定された場合、またはPosixシステムの場合にもserver-startを呼び出して制御端末からデタッチする。Emacs
Server in The GNU Emacs Manualを参照のこと。
emacs-session-restoreを呼び出す。Session Managementを参照のこと。
以下のオプションはスタートアップシーケンスにおけるいくつかの側面に影響を与えます。
この変数が非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 Modeを参照のこと。
--daemon表示の初期化を何も行わず単にバックグラウンドでサーバーを開始する。
--no-init-file-qinitファイルとdefaultライブラリーをいずれもロードしない。
--no-site-filesite-startライブラリーをロードしない。
--quick-Q‘-q --no-site-file --no-splash’と等価。