Next: Region Indent, Previous: Primitive Indent, Up: Indentation [Contents][Index]
すべてのメジャーモードにとって重要な関数は、編集対象の言語にたいして正しくインデントを行うようにTABキーをカスタマイズします。このセクションではTABキーのメカニズムと、それを制御する方法について説明します。このセクションの関数は予期せぬ値をリターンします。
これはほとんどの編集用モードでTABにバインドされるコマンド。これの通常の動作はカレント行のインデントだが、かわりにタブ文字の挿入やリージョンのインデントを行うこともできる。
これは以下のことを行う:
indent-region
を呼び出す(Region Indentを参照)。
indent-line-function
内のインデント関数がindent-to-left-margin
の場合、または変数tab-always-indent
が挿入する文字としてタブ文字を指定する場合(以下参照)にはタブ文字を挿入する。
indent-line-function
内の関数を呼び出すことにより行われる。その行がすでにインデント済みで、かつtab-always-indent
の値がcomplete
(以下参照)ならポイント位置のテキストの補完を試みる。
rigidが非nil
(インタラクティブな場合はプレフィクス引数)なら、このコマンドが行をインデントした後、あるいはタブを挿入後に新たなインデントを反映するために、このコマンドはカレント行先頭にあるバランスされた式全体も厳正にインデントする。この引数はコマンドがリージョンをインデントする場合は無視される。
この変数の値はカレント行をインデントするためにindent-for-tab-command
、およびその他種々のインデントコマンドにより使用される関数。これは通常はメジャーモードにより割り当てられ、たとえばLispモードはこれをlisp-indent-line
、Cモードはc-indent-line
のようにセットする。デフォルト値はindent-relative
。Auto-Indentationを参照のこと。
このコマンドはカレントのメジャーモードに適した方法でカレント行をインデントするためにindent-line-function
内の関数を呼び出す。
この関数は改行を挿入後に、メジャーモードに応じて新たな行(挿入した改行の次の行)をインデントする。これはindent-according-to-mode
を呼び出すことによりインデントを行う。
このコマンドはカレント行の再インデント、ポイント位置への改行の挿入、その後に新たな行(挿入した改行の次の行)のインデントを行う。これはindent-according-to-mode
を呼び出すことにより両方の行をインデントする。
この変数はTAB
(indent-for-tab-command
)コマンドの挙動のカスタマイズに使用できる。値がt
(デフォルト)ならコマンドは通常はカレント行だけをインデントする。値がnil
ならコマンドはポイントが左マージン、またはその行のインデント内ににあるときのみカレント行をインデントして、それ以外はタブ文字を挿入する。値がcomplete
ならコマンドはまずカレント行のインデントを試みて、その行がすでにインデント済みならポイント位置のテキストを補完するためにcompletion-at-point
を呼び出す(Completion in Buffersを参照)。