次: , 前: Indentation, 上: Indentation


18.1 字下げコマンドとその技巧

行の字下げを飛び越えるには、M-mback-to-indentation)を使います。 行のどこで実行しても、その行の空白でない最初の文字位置にポイントを移動します。

現在行のまえに字下げした行を挿入するには、 C-a C-o <TAB>を使います。 現在行のあとに字下げした行を挿入するには、C-e C-jを使います。

単にタブ文字を挿入するには、C-q <TAB>と打ちます。

C-M-osplit-line)は、 ポイントから行末までのテキストを垂直に下ろします。 その結果、現在行は2つの行に分割されます。 C-M-oは、まず、ポイントの直後に空白やタブがある限りポイントを進めます。 そして、ポイントの直後に、 改行とポイント位置の桁までに必要な字下げを挿入します。 ポイント自身は挿入した改行の直前に留まります。 この点では、C-M-oC-oに似ています。

2つの行を連結するには、 コマンドM-^delete-indentation)を使います。 このコマンドは、現在行の行頭の字下げと行区切り(改行文字)を 削除して空白1個に置き換えます。 ただし、この空白1個を省いてしまう(Lispコードには便利な)特別な場合があります。 2つの行を繋げた結果、開き括弧や閉じ括弧が連続する場合、 あるいは、さらに改行が続く場合です。 現在行の字下げだけを削除するには、 行頭に移動してからM-\delete-horizontal-space)を使います。 このコマンドは、カーソル(ポイント)の周りの空白とタブをすべて削除します。

詰め込み接頭辞がある場合、M-^は、 削除される改行の直後に現れる詰め込み接頭辞を削除します。 See Fill Prefix

一度に複数の行の字下げを変更するコマンドもあります。 C-M-\indent-region)は、 リージョン内で始まるすべての行に作用します。 このコマンドは、行頭で<TAB>を打鍵したかのように 『普通の』方法で各行を字下げします。 数引数は字下げする桁位置を指定します。 つまり、最初の空白でない文字がその桁位置にくるように 行全体を右か左に水平移動します。 C-x <TAB>indent-rigidly)は、 リージョン内のすべての行を、 引数で指定した分だけ右に移動します(引数が負であれば左に移動)。 複数の行全部をきちっと揃えて(rigidly)横に移動することから、 コマンドにはこのような名前が付いています。

M-x indent-relativeは、先行する行(実際には空行でないいちばん近くの行)に 基づいてポイント位置を字下げします。 ポイント位置に空白を挿入してポイントを進めて、 ポイントが先行する行の字下げ位置の真下にくるようにします。 字下げ位置とは連続した白文字の末尾か行末のことです。 ポイントが先行する行のどの字下げ位置よりも右にある場合には、 ポイントのまえの白文字を削除してから、 先行する行の適用可能な最初の字下げ位置まで字下げします。 適用可能な字下げ位置がない場合には、 indent-relativetab-to-tab-stopを実行します

字下げテキスト(indented text)モードでは、 <TAB>はindent-relativeと定義されます。 See Text

テキストの一部を字下げする別の方法についてはSee Format Indentation