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


31.17.2 メジャーモードが制御するインデント

すべてのメジャーモードにとって重要な関数は、編集対象の言語にたいして正しくインデントを行うようにTABキーをカスタマイズします。このセクションではTABキーのメカニズムと、それを制御する方法について説明します。このセクションの関数は予期せぬ値をリターンします。

Command: indent-for-tab-command &optional rigid

これはほとんどの編集用モードでTABにバインドされるコマンド。これの通常の動作はカレント行のインデントだが、かわりにタブ文字の挿入やリージョンのインデントを行うこともできる。

これは以下のことを行う:

rigidが非nil (インタラクティブな場合はプレフィクス引数)なら、このコマンドが行をインデントした後、あるいはタブを挿入後に新たなインデントを反映するために、このコマンドはカレント行先頭にあるバランスされた式全体も厳正にインデントする。この引数はコマンドがリージョンをインデントする場合は無視される。

Variable: indent-line-function

この変数の値はカレント行をインデントするためにindent-for-tab-command、およびその他種々のインデントコマンドにより使用される関数。これは通常はメジャーモードにより割り当てられ、たとえばLispモードはこれをlisp-indent-line、Cモードはc-indent-lineのようにセットする。デフォルト値はindent-relativeAuto-Indentationを参照のこと。

Command: indent-according-to-mode

このコマンドはカレントのメジャーモードに適した方法でカレント行をインデントするためにindent-line-function内の関数を呼び出す。

Command: newline-and-indent

この関数は改行を挿入後に、メジャーモードに応じて新たな行(挿入した改行の次の行)をインデントする。これはindent-according-to-modeを呼び出すことによりインデントを行う。

Command: reindent-then-newline-and-indent

このコマンドはカレント行の再インデント、ポイント位置への改行の挿入、その後に新たな行(挿入した改行の次の行)のインデントを行う。これはindent-according-to-modeを呼び出すことにより両方の行をインデントする。

User Option: tab-always-indent

この変数はTAB (indent-for-tab-command)コマンドの挙動のカスタマイズに使用できる。値がt(デフォルト)ならコマンドは通常はカレント行だけをインデントする。値がnilならコマンドはポイントが左マージン、またはその行のインデント内ににあるときのみカレント行をインデントして、それ以外はタブ文字を挿入する。値がcompleteならコマンドはまずカレント行のインデントを試みて、その行がすでにインデント済みならポイント位置のテキストを補完するためにcompletion-at-pointを呼び出す(Completion in Buffersを参照)。