Next: , Previous: , Up: プログラムのインデント   [Contents][Index]


28.3.2 複数行のインデント

複数行のコードを、1度に再インデントしたいときがあるかもしれません。これを行う1つの方法は、マークを使う方法です。マークがアクティブでリージョンが空でないとき、TABはリージョン内の各行をインデントします。一方、コマンドC-M-\ (indent-region)は、マークがアクティブか否かにかかわらず、リージョン内の各行をインデントします(インデントコマンドを参照してください)。

それらに加えて、Emacsはコードの大きな断片をインデントするために、以下のコマンドを提供します:

C-M-q

カッコでグループ化された、すべての行を再インデントします。

M-q

Fill a single paragraph in a defun, or reindent all the lines within that defun.

C-u TAB

カッコでグループ化されたすべてを横にシフトして、最初の行が正しくインデントされるようにします。

M-x indent-code-rigidly

リージョン内のすべての行を横にシフトしますが、コメントや文字列内で開始される行は変更しません。

1つのカッコでグループ化されたものを再インデントするには、ポイントをグループ化の前に配して、C-M-qとタイプします。これはグループ化されたものの全体的なインデント(たとえばグループ化が開始される行のインデント)は変更せずに、相対的なインデントを変更します。C-M-qで実行される関数は、Lispモードではindent-pp-sexp、Cモードではc-indent-exp、のようにメジャーモードに依存します。全体的なインデントも同様に訂正したい場合は、最初にTABをタイプします。

To reindent the entire defun around point, type M-q (prog-fill-reindent-defun). If point is in a comment or a string, this command fills and indents the comment or string instead. What exactly constitutes a comment, a string, or a defun depends on the major mode: the bounds of a defun are decided by the variables beginning-of-defun-function and end-of-defun-function (see List Motion in The Emacs Lisp Reference Manual), and the filling mechanism is decided by fill-paragraph-function (see Filling in The Emacs Lisp Reference Manual).

グループ内の相対的なインデントは好ましいが、それの最初の行のインデントが好ましくない場合は、その最初の行にポイントを移動してC-u TABとタイプします。Lisp、C、他のいくつかのメジャーモードでは、数引数を指定したTABは通常どおりカレント行をインデントしてから、カレント行で始まる、カッコでグループ化されたすべての行を同じ量で再インデントします。このコマンドは巧妙なので、文字列内で開始される行は変更しません。CモードのときはCプリプロセッサー行は変更しませんが、それらにアタッチされた継続行は再インデントします。

コマンドM-x indent-code-rigidlyは、indent-rigidlyが行うように(インデントコマンドを参照してください)、リージョン内のすべての行を厳格(rigidly)にシフトします。このコマンドはリージョンが文字列内で開始される場合を除き、文字列内で開始される行のインデントは変更しません。プレフィクス引数は、インデントする列数です。

This page has generated for branch:master, commit:762705fb24fd90db318f2e51c1e762452d26f7e2 to check Japanese translation.