バッファの左右には、表示マージンと呼ばれる空白領域が設けられていることがあります。通常のテキストがこれらの領域に表示されることはありませんが、displayプロパティを使用することで、表示マージンに要素を配置できます。
余白に何かを表示させるには、何らかのテキストの display
プロパティにある余白表示指定でそれを指定します。これは置換表示指定であり、つまり指定したテキスト自体は表示されず、余白表示は現れますが、そのテキスト自体は表示されません。
マージン表示指定は ((margin right-margin) spec) や ((margin left-margin)
spec) のような形式になります。ここで spec
は、マージンに何を表示するかを指定する別の表示指定です。通常は、表示するテキスト文字列か、画像記述子となります。
特定のバッファテキストを変更したり表示を妨げたりすることなく、そのテキストに関連付けてマージンに表示するには、そのテキストにbefore-stringプロパティを持つオーバーレイを適用し、before-stringの内容にマージン表示指定を記述します。
なお、マージンに表示する文字列でフェイスが完全に指定されていない場合、未指定の属性は margin
フェイスから継承されます(基本フェイスを参照)。マージンの文字列に margin
フェイスとは独立した特定の外観を持たせたい場合は、その文字列に必要なすべての属性が指定されたフェイスを持つようにしてください。
ディスプレイのマージンに内容を表示するには、まず幅を0以外の値に設定する必要があります。一般的な方法は、以下の変数を設定することです:
この変数は、左マージンの幅を文字セル(別名「列」)単位で指定します。すべてのバッファにおいてバッファローカルです。nil という値は、左マージン領域がないことを意味します。
この変数は、右マージンの幅を文字セル単位で指定します。すべてのバッファにおいてバッファローカルです。nil という値は、右マージン領域がないことを意味します。
これらの変数を設定しても、すぐにウィンドウに反映されるわけではありません。これらの変数は、ウィンドウに新しいバッファが表示された際にチェックされます。したがって、set-window-buffer
を呼び出すことで変更を反映させることができます。これらの変数を使用して、左右のマージンの現在の幅を判定しようとしないでください。代わりに、関数
window-margins を使用してください。
余白の幅も即座に設定できます。
この関数は、ウィンドウ window の余白幅を文字セル単位で指定します。引数 left で左余白を、right で右余白(デフォルトは 0)を制御します。
window が希望する幅のマージンを収めるのに十分な大きさでない場合、window のマージンは変更されません。
ここで指定された値は、後に window に対して keep-margins 引数 nil を指定して set-window-buffer を呼び出すか、あるいは省略することで、上書きされる場合があります(バッファとウィンドウ を参照)。
この関数は、window の左右マージンの幅を (left . right)
形式のコンスセルとして返します。2つのマージン領域のいずれかが存在しない場合は、その幅が nil
として返され、両方のマージンが存在しない場合は (nil) が返されます。window が nil
である場合は、選択中のウィンドウが使用されます。