TAB
(indent-for-tab-command
)コマンドとは別に、Emacsは他の方法でインデントを処理する、さまざまなコマンドを提供します。
カレント行をポイント位置で分割します(split-line
)。その行のポイントの後にあるテキストは新しい行となり、ポイントがあった位置と同じ列にインデントされます。このコマンドは、最初にポイントを複数のスペースまたはタブを飛び越えて移動させます。その後、ポイントは挿入された行の前に配されます。
カレント行の最初の空白以外の文字に移動(前方または後方)します(back-to-indentation
)。その行に空白文字しかない場合は、その行の行末に移動します。
ポイント位置の空白文字を次のタブストップまでインデントします(tab-to-tab-stop
)。タブストップを参照してください。
ポイントが前の行(実際には最後の空行以外の行)の、最初の空白以外の文字に揃うように、ポイント位置に空白文字を挿入します。ポイントがすでにその位置より右にある場合は、かわりにtab-to-tab-stop
を実行します
— ただし数引数を指定した場合は何もしません。
前の行とカレント行をマージします(delete-indentation
)。このコマンドはカレント行の前にある任意のインデントと、行の境界を1つのスペースで置き換えて、2つの行を明解に結合(join)します。
特別なケースとして、結合された文字が連続する開きカッコまたは閉じカッコの場合、または他の改行が続く場合、1つのスペースは省略されます(Lispコードにたいして有用)。
fillプレフィクスが存在して、それが改行の後ろにあった場合、M-^はfillプレフィクスを削除します。フィルプレフィクスを参照してください。
プレフィクス引数を与えると、カレント行を後続行に結合します。リージョンがアクティブでプレフィクス引数が与えられなければ、かわりにリージョン内の全行を結合します。
リージョンのすべての行にたいして、各行の先頭でTABをタイプしたかのようにインデントします(indent-region
)。
数引数が与えられた場合、その列番号までリージョンのすべての行をインデントします。
リージョン内で開始されるすべての行をインデントします。影響を受ける行は厳格な(rigid)単位とによって移動されます(indent-rigidly
)。
引数を指定しないで呼び出されたとき、このコマンドは影響を受ける行のインデントを対話的に調整するために、transientモードをアクティブにします。transientモードがアクティブの間は、LEFTまたはRIGHTにより、スペース1文字単位で左または右にインデントします。S-LEFTまたはS-RIGHTとタイプすることにより、タブストップ単位で左または右にインデントすることもできます。他のキーをタイプするとtransientモードは無効になり、その後はこのキーは通知のように動作します。
プレフィクス引数nを指定して呼び出すと、このコマンドは行をn個のスペースでインデントします(transientモードは有効になりません)。nに値を与えると後方にインデントするので、リージョン内の行のすべてのインデントを除去したいときは、以下のように充分に大きい負の引数を与えます。
C-u -999 C-x TAB