すべてのコードを書き終えた後、emacs でコード全体を自動的にインデントすることはできますか?

すべてのコードを書き終えた後、emacs でコード全体を自動的にインデントすることはできますか?

私のemacs設定では、コードを書くときに自動的にインデントし、何らかの理由で位置がずれた行 (通常はコードを変更したため) でタブを押すと、正しくインデントし直すようになっています。しかし、(emacsコードが書き込まれた) ファイル全体を取得して、通常はファイルのすべての行でタブを押すことなく、コードを書くときにリアルタイムでインデントするのと同じように、ファイル全体を自動的にインデントできるコマンドがあるかどうか疑問に思っています。

タブ移動して次の行に進むマクロを定義し、ファイルの長さに応じてそのマクロを繰り返すことができると思います。ただし、emacsこれを自動的に実行するコマンドやその他の機能があるかどうか疑問に思っています。

答え1

バッファ全体に対してこれを行うには、領域をインデントします。

  • バッファ全体をC-x h(またはM-x mark-whole-buffer)でマークする
  • インデント領域を実行するC-M-\(またはM-x indent-region)

関連情報