Cモードおよび関連モードにおけるインデントの特殊機能は以下の通りです。
現在のトップレベル関数定義または集約型宣言を再インデントする(CCモードではc-indent-defun、tree-sitterベースのc-ts-modeではc-ts-mode-indent-defun)。
ドットに続く、「sexp」としても知られるバランス式(バランス括弧を用いた式を参照)の各行を再インデントします。CCモードではc-indent-expが、Tree-sitterベースのc-ts-modeではより汎用的なprog-indent-sexpが呼び出されます。接頭辞引数を指定すると、無効な構文に関する警告メッセージを抑制できます。
現在の行、アクティブリージョン、またはこの行から始まるブロック (c-indent-line-or-region)
を再インデントします。接頭辞引数を指定すると、現在の行に再インデントが必要な場合、その行から始まるバランス式を厳密に再インデントします。
c-tab-always-indent が t
の場合、このコマンドは常に現在の行をインデントし、それ以外の処理は行いません。これがデフォルトです。
その変数が nil
の場合、このコマンドは、ポイントが左マージンにあるか、あるいは行のインデント内にある場合に限り、現在の行を再インデントします。それ以外の場合は、タブ(または
indent-tabs-mode が nil
である場合はそれに相当する数のスペース)を挿入します。
それ以外の値(nil または t
以外)は、常にその行を再インデントし、コメント内や文字列内であればタブを挿入することを意味します。
現在のバッファ全体を再インデントするには、C-x h C-M-\ と入力してください。まずバッファ全体がリージョンとして選択され、次にそのリージョンが再インデントされます。
現在のブロックを再インデントするには、C-M-u C-M-q を使用します。これによりブロックの先頭に移動し、その後全体を再インデントします。