通常、インデントコマンドは、目的の列に揃えるために、可能な限り短いタブ文字とスペース文字の連なりを挿入(または削除)します。タブ文字は、次の表示タブストップまで続く空白として表示されます。デフォルトでは、tab-width列ごとに1つの表示タブストップがあります(デフォルトは8です)。テキストの表示方法を参照してください。
ご希望であれば、すべてのインデントをスペースのみで構成することも可能です。これを希望する場合は、バッファローカル変数 indent-tabs-mode に nil
を設定してください。バッファローカル変数の設定については、ローカル変数
を参照してください。ただし、indent-tabs-mode の値にかかわらず、C-q TAB は常にタブ文字を挿入することにご注意ください。
indent-tabs-mode を nil
に設定する理由の一つは、エディタによってタブ文字の表示方法が異なるためです。Emacs ユーザーであっても、tab-width
にそれぞれ異なるカスタマイズ値を設定している場合があります。スペースのみを使用することで、ファイルの見た目を常に統一できます。Emacs
内での見た目だけを重視するのであれば、この問題に対処するもう一つの方法として、tab-width
変数をファイルローカル変数に設定することが挙げられます(ファイル内のローカル変数 を参照)。
また、タブをスペースに、またはその逆に変換するコマンドもあり、その際、空白以外のすべてのテキストの列は常に保持されます。M-x tabify は領域内のスペースの連続をスキャンし、インデントを変更せずに変換できる場合は、2つ以上のスペースの連続をタブに変換します。M-x untabify は領域内のすべてのタブを適切な数のスペースに変換します。