意識せずに不必要なスペースを行末に残してしまったり、バッファーの最後に空行を残してしまうことはよくあります。ほとんどの場合、そのような行末の空白文字(trailing whitespace)は何の影響も及ぼしませんが、厄介物になる場合もあります。
バッファーローカルな変数show-trailing-whitespace
をt
にセットすることにより、行末の空白文字を可視化できます。これによりEmacsはフェイスtrailing-whitespace
で、行末の空白文字を表示します。
この機能は行末に空白文字を含む行の、行末にポイントがあるときは適用されません。厳密にいえば、これも行末の空白文字なのですが、それを特別に表示してしまうと、新しいテキストをタイプするとき面倒です。このような特別なケースでは、ポイントの位置に表示されるカーソルより、空白文字があることが自明だからです。
M-x
delete-trailing-whitespaceとタイプすると、すべての行末の空白文字を削除します。このコマンドは、バッファー内の各行の行末にあるすべての余分なスペースと、バッファーの最後にある空行を削除します。バッファー内の空行を削除しない場合は、変数delete-trailing-lines
をnil
に変更してください。リージョンがアクティブのときは、リージョン内の各行の行末の余分なスペースを削除します。
グラフィカルなディスプレイでは、Emacsはウィンドウの最後の使われていない行の左フリンジに小さなイメージを表示して、それを示すことができます。このイメージはバッファーのテキストが何も含まれていないスクリーン行に表示されるので、バッファーの最後にある空行は、このイメージが表示されないことで見分けることができます。この機能を有効にするにはバッファーローカルな変数indicate-empty-lines
に非nil
値をセットします。すべての新しいバッファーでこの機能を有効または無効にするには、この変数のデフォルト値をセットします(例
(setq-default indicate-empty-lines t)
)
Whitespaceモードはバッファーローカルなマイナーモードで、バッファー内にある多くの種類の空白文字を視覚化します。これは空白文字を特別なフェイスで描画するか、特別なグリフで表示することにより行われます。このモードを切り替えるには、M-x
whitespace-modeとタイプします。視覚化される空白文字の種類は、リスト変数whitespace-style
により決定されます。M-x whitespace-toggle-optionsとタイプして、カレントバッファーでこのリスト内の個々の要素のオンとオフを切り替えることができます。以下はリストに指定できる要素の一部です(完全なリストは変数のドキュメントを参照してください)。
face
特別なフェイスを使った視覚化をすべて有効にします。この要素には特別な意味があります。もしこれがリストに含まれていない場合、space-mark
、tab-mark
、newline-mark
を除く他の視覚化は効果がなくなります。
trailing
行末の空白文字をハイライトします。
tabs
タブ文字をハイライトします。
spaces
スペースおよびnon-breaking space文字をハイライトします。
lines
¶80列以上の行をハイライトします。列の上限を変更するには、変数whitespace-line-column
をカスタマイズします。
newline
改行をハイライトします。
missing-newline-at-eof
バッファーが改行で終端されていなければ最後の文字をハイライトします。
empty
バッファーの先頭、および/または終端の空行をハイライトします。
big-indent
¶非常に深いインデントをハイライトします。デフォルトでは、少なくとも4個の連続するTAB文字と、32個の連続するスペースからなる、任意のシーケンスがハイライトされます。これを変更するには、正規表現whitespace-big-indent-regexp
をカスタマイズしてください。
space-mark
スペースとnon-breaking文字を特別なグリフで描画します。
tab-mark
タブ文字を特別なグリフで描画します。
newline-mark
改行文字を特別なグリフで描画します。
Global Whitespaceモードは、すべてのバッファーで空白文字を視覚化する、グローバルなマイナーモードです。この機能を個別に切り替えるには、M-x global-whitespace-toggle-optionsを使用してください。