GNU Emacs 32.0.50 (9008bf64c3) のマニュアルを PLaMo 翻訳で機械翻訳したものです。誤訳を含むことがあります。原文: https://www.gnu.org/software/emacs/manual/html_node/emacs/Just-Spaces.html ・ emacs-doc.conao3.com

26.3 タブ vs. スペース

通常、インデントコマンドは、目的の列に揃えるために、可能な限り短いタブ文字とスペース文字の連なりを挿入(または削除)します。タブ文字は、次の表示タブストップまで続く空白として表示されます。デフォルトでは、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 は領域内のすべてのタブを適切な数のスペースに変換します。