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


33.17.4 前行に相対的なインデント

このセクションでは前の行のコンテンツにもとづいてカレント行をインデントするコマンドを2つ説明します。

Command: indent-relative &optional first-only unindented-ok

このコマンドは前の非ブランク行の次のインデントポイント(indent point)と同じ列に拡張されるように、ポイント位置に空白文字を挿入する。インデントポイントとは後に空白文字をともなった非空白文字。次のインデントポイントはポイントのカレント列より大きい、最初のインデントポイントになる。たとえばポイントがテキスト行の最初の非ブランク文字の下と左にある場合には、空白文字を挿入してその列に移動する。

前の非ブランク行に次のインデントポイントがない(列の位置が十分大きくない)場合には、( unindented-okが非nilなら)何もしないか、あるいはtab-to-tab-stopを呼び出す。したがってポイントが短いテキスト行の最後の列の下と右にある場合には、このコマンドは通常は空白文字を挿入することにより次のタブストップにポイントを移動する。

first-onlyが非nilなら、最初のインデント位置だけを考慮する。

indent-relativeのリターン値は予測できない。

以下の例ではポイントは2行目の先頭にある:

            This line is indented twelve spaces.
∗The quick brown fox jumped.

(indent-relative nil)の評価により以下が生成される:

            This line is indented twelve spaces.
            ∗The quick brown fox jumped.

次の例ではポイントは‘jumped’の‘m’と‘p’の間にある:

            This line is indented twelve spaces.
The quick brown fox jum∗ped.

(indent-relative nil)の評価により以下が生成される:

            This line is indented twelve spaces.
The quick brown fox jum  ∗ped.
Command: indent-relative-first-indent-point

このコマンドは引数first-onlytを指定してindent-relativeを呼び出すことにより、前の非ブランク行に倣ってカレント行をインデントする。リターン値は予測できない。

カレント列より先のインデントポイントが前の非ブランク行に存在しなければこのコマンドは何もしない。