Next: Lisp Indent, Previous: Basic Indent, Up: Program Indent [Contents][Index]
複数行のコードを、1度に再インデントしたいときがあるかもしれません。これを行う1つの方法は、マークを使う方法です。マークがアクティブでリージョンが空でないとき、TABはリージョン内の各行をインデントします。一方、コマンドC-M-\
(indent-region
)は、マークがアクティブか否かにかかわらず、リージョン内の各行をインデントします(Indentation Commandsを参照してください)。
それらに加えて、Emacsはコードの大きな断片をインデントするために、以下のコマンドを提供します:
カッコでグループ化された、すべての行を再インデントします。
カッコでグループ化されたすべてを横にシフトして、最初の行が正しくインデントされるようにします。
リージョン内のすべての行を横にシフトしますが、コメントや文字列内で開始される行は変更しません。
1つのカッコでグループ化されたものを再インデントするには、ポイントをグループ化の前に配して、C-M-qとタイプします。これはグループ化されたものの全体的なインデント(たとえばグループ化が開始される行のインデント)は変更せずに、相対的なインデントを変更します。C-M-qで実行される関数は、Lispモードではindent-pp-sexp
、Cモードではc-indent-exp
、のようにメジャーモードに依存します。全体的なインデントも同様に訂正したい場合は、最初にTABをタイプします。
グループ内の相対的なインデントは好ましいが、それの最初の行のインデントが好ましくない場合は、その最初の行にポイントを移動してC-u TABとタイプします。Lisp、C、他のいくつかのメジャーモードでは、数引数を指定したTABは通常どおりカレント行をインデントしてから、カレント行で始まる、カッコでグループ化されたすべての行を同じ量で再インデントします。このコマンドは巧妙なので、文字列内で開始される行は変更しません。CモードのときはCプリプロセッサー行は変更しませんが、それらにアタッチされた継続行は再インデントします。
コマンドM-x
indent-code-rigidlyは、indent-rigidly
が行うように(Indentation Commandsを参照してください)、リージョン内のすべての行を厳格(rigidly)にシフトします。このコマンドはリージョンが文字列内で開始される場合を除き、文字列内で開始される行のインデントは変更しません。プレフィクス引数は、インデントする列数です。