Next: , Previous: , Up: Modes   [Contents][Index]


22.2 Major Modes

メジャーモードは特定の種類のテキスト編集にEmacsを特化します。すべてのバッファーは1度に1つのメジャーモードをもちます。すべてのメジャーモードは、メジャーモードコマンド(major mode command)に関連付けられ、そのコマンド名は‘-mode’で終わるべきです。このコマンドは、ローカルキーマップのようなさまざまなバッファーローカル変数をセットすることにより、カレントバッファーないでそのモードに切り替える配慮をします。Major Mode Conventionsを参照してください。

Fundamentalモードと呼ばれるはもっとも特化されていないメジャーモードであり、モード特有な定義や変数セッティングをもちません。

Command: fundamental-mode

これは、Fundamentalモードにたいするメジャーモードコマンドである。他のモードコマンドと異なり、このモードはカスタマイズしてはならないことになっているので、モードフックは何も実行されない(Major Mode Conventionsを参照)。

メジャーモードを記述するもっとも簡単な方法は、マクロdefine-derived-modeを使用する方法です。これは、既存のメジャーモードを変形して、新たなモードをセットアップします。Derived Modesを参照してください。define-derived-modeは多くのコーディング規約を自動的に強要するので、たとえ新たなモードが他のモードから明示的に派生されない場合でも、わたしたちはdefine-derived-modeの使用を推奨します。派生元とするための一般的なモードについては、Basic Major Modesを参照してください。

標準的なGNU EmacsのLispディレクトリーツリーには、いくつかのメジャーモードがtext-mode.eltexinfo.ellisp-mode.elrmail.elのようなファイルとして含まれています。モードの記述方法を確認するために、これらのライブラリーを学ぶことができます。

User Option: major-mode

この変数のバッファーローカル値は、カレントのメジャーモードにたいするシンボルを保持する。この変数のデフォルト値は、新たなバッファーにたいするデフォルトのメジャーモードを保持する。標準的なデフォルト値は、fundamental-modeである。

デフォルト値がnilの場合、C-x b(switch-to-buffer)のようなコマンドを通じてEmacsが新たなバッファーを作成したとき、新たなバッファーは以前カレントだったバッファーのメジャーモードになる。例外として、以前のバッファーのメジャーモードのシンボルプロパティmode-classが値specialをもつ場合、新たなバッファーはFundamentalモードになる(Major Mode Conventionsを参照)。