Next: Multi-line Indent, Up: Program Indent
newline-and-indent
)。
基本的な字下げコマンドは<TAB>です。
直前の数行から判断した正しい字下げを現在行に施します。
<TAB>が実行する関数は、メジャーモードに依存します。
たとえば、Lispモードではlisp-indent-line
、
Cモードではc-indent-line
が実行されます。
これらの関数はそれぞれの言語の構文を解釈しますが、
どれも同じことを行うためのものです。
プログラム言語向けメジャーモードにおいては、
<TAB>は、現在行のどこにポイントがあっても、
現在行の先頭に白文字を挿入したり削除したりします。
ポイントが行頭の白文字の中にあったときは、
<TAB>は最後の白文字のうしろにポイントを置きます。
そうでなければ、<TAB>を打ったときの文字のところに留まります。
ポイント位置にタブを挿入するには、C-q <TAB>を使います。
新たにソースコード行を入力するときには、
C-j(newline-and-indent
)を使ってください。
これは、<RET>に続けて<TAB>を打鍵することと等価です。
C-jは、空行を作ってから、その行で適切な字下げを行います。
括弧でグループにまとめたところでは、 <TAB>は、2行目以降の行をそれぞれ直前の行の真下にくるように字下げします。 したがって、ある行を非標準的な字下げにすると、 以降の行もその字下げに従うことになります。 <TAB>による標準的な字下げが、 特定の行では美しくないので無視したい場合には、 字下げのこのようなふるまいが便利です。
(字下げ処理を含めて)Emacsは、左端にある、開き丸括弧、開き中括弧、 および、その他の開き区切りを関数の始まりと仮定することを 覚えておきましょう。 たとえ文字列の中であっても、 関数の始まりでない開き区切りをけっして0桁目に置いてはいけません。 この制約は字下げコマンドを高速にするためにきわめて重要です。 無条件で受け入れてください。 これに関してより詳しくは、See Defuns。