カレントバッファの主モードを陽に選択することができます.しかしほとんど の場合,Emacsはファイル名やファイルのテキストを調べてどの主モードを使う かを決定します.
陽に新しい主モードを選ぶには,M-xコマンドを使います.主モード名
に-mode
を付けると,そのモードを選ぶコマンド名になります.たとえば,
LispモードになるにはM-x lisp-modeと入力します.
ファイルを読み込むと,ファイル名からふさわしい主モードを選択します.た
とえば,名前が.c
で終るファイルはCモードで編集されます.ファイル名
と主モードの対応づけは,変数auto-mode-alist
によって制御されます.
その値はリストで各要素は次のようなフォームです.
(regexp . mode-function)
たとえば,通常このリストには,("\\.c$" . c-mode)
,という要素
があって,`.c'で名前が終るファイルはCモードを選択するように設定して
います.(`\\'はLisp構文において文字列に`\'を含めるのに必要です.
これは正規表現の`.'の特別な意味をなくすために必要です.)この変数を
変更するにはLispコードで行ないます.
ファイル自体に,それを編集する主モードの指定を含ませることができます. このためにはファイルの空白でない最初の行に,特別な文字列を書きます.その 行ではモード名は`-*-'で囲まれていなければなりません.その行には他の 文字が書かれていてもかまいません.たとえば,
;-*-Lisp-*-
は,Lispモードを使うように指定したものです.Lispがこの行をコメントとして 扱うようにセミコロンを付けていることに注意してください.このように陽に指 定すると,ファイル名に基づくデフォルトモードは使われません.
モード指定は次のようにも書けます.
-*-Mode: modename;-*-
この場合,主モード名以外のものも指定できます.しかし,Emacsはモード名以 外のものは受理しません.
主モードはローカル変数リストで指定することもできます.See section ファイル内のローカル変数.
使用する主モードの指定がないファイルを読み込んだ場合や,C-x bで
新しいバッファを作成した場合には,変数default-major-mode
によって
指定された主モードが使われます.一般にこの値はシンボル
fundamental-mode
で,Fundamentalモードを指定します.
default-major-mode
がnil
のときは,主モードは直前に選択され
ていたバッファのものと同じになります.