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

プログラム言語用の主モード.

Emacsには,Lisp,Scheme(Lispの一種),C,Fortran,Muddleなどのプログラ ム言語用の主モードもあります.理想的には,あなたがEmacsで編集するどのプ ログラム言語にも主モードを作るのが良いのですが,ある言語用のモードが,別 の似た構文を持つ言語に使えることもあります.今ある言語モードはどれも誰か が努力して書いたものです.

Lispモードにはいくつかの形式があります.それらはLispを実行するときのイ ンタフェースが異なっています.See section Lisp用の主モード.

プログラム言語モードは,どれもTABキーを字下げ関数を実行するよう に定義します.この関数はその言語の字下げの慣習を知っていて,それに応じて 現在行を字下げします.たとえばCモードではTABキーを, c-indent-lineに割り当てます.LFDは,通常RETTABを順に実行するように定義されています.よってこれもモードで指定 された字下げをします.

たいていのプログラム言語では,字下げは行ごとに変わります.このような言 語のための主モードではDELをタブ文字を同数の空白として扱うように再 割当します(backward-delete-char-untabifyに割り当てます).これによ り,字下げが空白か,またはタブがはいっているのかを考えずに1桁ずつ消して いけます.このモードで,ポイントの前にあるタブ文字を消すには,C-b C-dと入力します.

プログラム言語モードでは段落の区切りは空白行だけになります.これによっ て段落コマンドが生かせます.プログラム言語用主モードでAuto Fillモードが 使われると,自動的に作られた新しい行は字下げされます.

主モードを設定したとき,モードフックという利用者関数が呼び出されます. これはLisp変数の値です.たとえば,Cモードの場合,変数c-mode-hook の値が呼び出されます.ただこれは,この値が存在しnon-nilのときです. 他のプログラム言語モードのモードフック変数には, lisp-mode-hookemacs-lisp-mode-hooklisp-interaction-mode-hookscheme-mode-hookmuddle-mode-hookがあります.モードフック関数には引数はありません.


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