Go to the first, previous, next, last section, table of contents.

ファイル内のローカル変数

ファイルにローカル変数のリストを置くこともできます.これは,そのファイ ルを編集するときにEmacs変数に設定する値を指定するものです.ファイルを読 み込む所のローカル変数のリストを調べファイルを読み込んだバッファでリスト の各変数をローカルにして,指定された値を設定します.

ローカル変数のリストはファイルの最後の部分(最終ページ)に置きます(それ に1ページ割り当てるのが良いでしょう).ローカル変数リストは,`Local Variables:'という文字列のある行から始まり,`End:'のある行で終ります. その間に,変数名と変数の値を1行に一組ずつ `variable:value'のように書きます.valueは評価さ れません.リテラルとして扱われます.

ローカル変数リストの始まる行には`Local Variables:'以外のものも書 けます.`Local Variables'の前のテキストは接頭辞と呼ばれ,後ろのテキ ストは接尾辞と呼ばれます.これらがあるときには,ローカル変数リストの各要 素にも前に接頭辞,後ろに接尾辞を付けなければなりません.`End:'行に も必要です.接頭辞と接尾辞は,コンパイラやテキストフォーマッタが迷わない ように,ローカル変数のリストをコメントの形にみせるのに使います.ローカル 変数のリストをコメントにする必要がなければ接頭や接尾辞をわざわざつける必 要はありません.

ローカル変数のリストで特別な変数名が2つあります.変数modeの値は 主モードの設定に使われます.変数evalの値は単に式として値が評価さ れるだけでその値は無視されます.これらは本来の変数ではありません.他の場 面でこの変数を設定しても,望みの効果は得られません.ローカル変数リスト中 でmodeを使うときは,それをリストの最初の項目にしなければなりませ ん.

ローカル変数リストの例を示します.

;;; Local Variables: ***
;;; mode:lisp ***
;;; comment-column:0 ***
;;; comment-start: ";;; "  ***
;;; comment-end:"***" ***
;;; End: ***

接頭辞`;;;'と接尾辞`***'に注意してください.また,ファイルのコ メントの始まりと終りはどれも同じ文字列となっていることにも注意しましょう. おそらく,このファイルはLisp言語のコードだと思われますが(少なくともLisp モードが便利な言語です),ここではコメントの開始と終了はこのようになって います.このローカル変数リストには,接頭辞と接尾辞が使われていて,ファイ ルがこの言語用のコンパイラやインタープリタに読まれたときにリストがコメン トと見られるようにしています.

ローカル変数リストの開始位置はファイルの終りから3000文字以内のところに なくてはならず,ファイルがページに分かれているなら最終ページになくてはい けません.さもなければEmacsはローカル変数リストはないものと考えます.こ れは,最終ページにない離れた`Local Variables:'がEmacsを混乱させない ため,またすべてを1ページに収めて,ローカル変数リストを持たない長いファ イルを読み込んだときに全ファイルを探索しなくても済むようにするためです.

ローカル変数リストで,Auto Fillモードをオンにしたいと思うかもしれませ ん.しかしこれは誤りです.Auto Fillモードを使うか使わないかは個人の問題 で,特定のファイルの内容に関わることではありません.Auto Fillモードを使 いたいときには,自分の`.emacs'ファイルで,個人的に主モードによって 必要に応じてオンするようにしてください(see section 初期化ファイル,.emacs).自分の趣味を 他人に押しつけるようなローカル変数リストの使い方はやめましょう.


Go to the first, previous, next, last section, table of contents.