Next: , Previous: , Up: Display   [Contents][Index]


14.16 不要なスペース

意識せずに不必要なスペースを行末に残してしまったり、バッファーの最後に空行を残してしまうことはよくあります。ほとんどの場合、そのような行末の空白文字(trailing whitespace)は何の影響も及ぼしませんが、厄介物になる場合もあります。

バッファーローカルな変数show-trailing-whitespacetにセットすることにより、行末の空白文字を可視化できます。これによりEmacsはフェイスtrailing-whitespaceで、行末の空白文字を表示します。

この機能は行末に空白文字を含む行の、行末にポイントがあるときは適用されません。厳密にいえば、これも行末の空白文字なのですが、それを特別に表示してしまうと、新しいテキストをタイプするとき面倒です。このような特別なケースでは、ポイントの位置に表示されるカーソルより、空白文字があることが自明だからです。

M-x delete-trailing-whitespaceとタイプすると、すべての行末の空白文字を削除します。このコマンドは、バッファー内の各行の行末にあるすべての余分なスペースと、バッファーの最後にある空行を削除します。バッファー内の空行を削除しない場合は、変数delete-trailing-linesnilに変更してください。リージョンがアクティブのときは、リージョン内の各行の行末の余分なスペースを削除します。

グラフィカルなディスプレーでは、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-marktab-marknewline-markを除く他の視覚化は効果がなくなります。

trailing

行末の空白文字をハイライトします。

tabs

タブ文字をハイライトします。

spaces

スペースおよびnon-breaking space文字をハイライトします。

lines

80列以上の行をハイライトします。列の上限を変更するには、変数whitespace-line-columnをカスタマイズします。

newline

改行をハイライトします。

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を使用してください。