Emacsにfill-column
の位置(明示的なフィルコマンドを参照)を表示するインジケーターを追加できます。フィル列インジケーターは特にprog-mode
とその派生モード(メジャーモードを参照)においてプログラムのソースコードのフォーマットにたいして特別な意味をもつ特定の列位置を示すために有用な機能です。これは等幅フォント(fixed-ppitch
font)のすべての文字を想定した機能です。ここで等幅フォントとはすべての文字の幅が等しいフォントのことです(全角文字は例外かもしれない)。可変幅フォント(variable-pitch
font)を使用バッファーでは、行が異なればフィル列インジケーターは不揃いに表示されるかもしれません。
フィル列インジケーターの表示を有効にするには、インジケーターをローカルまたはグローバルに有効にする、display-fill-column-indicator-mode
またはglobal-display-fill-column-indicator-mode
のマイナーモードを使用します。
かわりにインジケーターの有効化とインジケートに使用する文字の制御に、display-fill-column-indicator
とdisplay-fill-column-indicator-character
という2つのバッファーローカル変数セットできます。インジケーターを表示するためには、これらの変数がどちらも非nil
でなければならないことに注意してください(マイナーモードをオンにすることによりこれらの変数がセットされる)。
このモードをカスタマイズするために2つのバッファーローカル変数と1つのフェイスがあります:
display-fill-column-indicator-column
¶インジケーターをセットするべき列数を指定します。列にたいする正の数値、あるいは変数fill-column
の値の使用を意味するt
を指定できます。
それ以外の値ではインジケーターは無効になります。デフォルト値はt
です。
display-fill-column-indicator-character
¶インジケーターに使用する文字を指定します。フォントがサポートすれば、Unicode文字を含む任意の文字を指定できます。値nil
はインジケーターを無効にします。display-fill-column-indicator-mode
やglobal-display-fill-column-indicator-mode
でモードを有効にしたときは、値が非nil
ならばこの変数が指定する文字が使用されます。それ以外ならEmacsは文字U+2502
BOX DRAWINGS LIGHT VERTICAL、U+2502が表示できなければフォールバックとして‘|’を使用します。
fill-column-indicator
¶インジケーターの表示に使用するフェイスを指定します。これはバックグラウンドカラーを除くデフォルト値をフェイスshadow
から継承します。インジケーターのカラーを変更するために必要なのは、このフェイスのフォアグラウンドカラーのセットだけです。
グラフィカルなディスプレイでは、Emacsはバッファーのバウンダリー(boundary: 境界)を、フリンジに表示することもできます。この機能を有効にすると、最初の行と最後の行ではフリンジに、かぎカッコが表示されます。上矢印または下矢印の場合、それはウィンドウをその方向に、もっとスクロールできることを示します。
バッファーローカルな変数indicate-buffer-boundaries
は、バッファーのバウンダリーととウィンドウのスクロールが、フリンジでどのように表示されるかを制御します。値がleft
(またはright
)の場合、かぎカッコと矢印のビットマップは、左フリンジ(または右フリンジ)に表示されます。
値がalist(association list: 連想リスト。Association Lists in the Emacs
Lisp Reference Manualを参照してください)の場合、各要素の(indicator .
position)
で、標識(indicator)の位置(position)を指定します。indicatorにはtop
、bottom
、up
、down
、またはt
(指定されていない標識のデフォルト位置)を指定します。positionにはleft
、right
、またはnil
(標識を表示しない)を指定します。
たとえば((top . left) (t
.
right))
は、最上行の左フリンジにかぎカッコを表示し、右フリンジには最下行のかぎカッコとスクロール矢印を表示します。左フリンジにかぎカッコだけを表示させる場合は、((top
. left) (bottom . left))
を使います。