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

42.13.4 フリンジビットマップ

フリンジビットマップとは、切り捨てまたは継続された線、バッファ境界、オーバーレイ矢印などの論理フリンジインジケータを表す実際のビットマップのことです。各ビットマップはシンボルで表されます。これらのシンボルは、フリンジインジケータをビットマップにマッピングする変数 fringe-indicator-alist(フリンジインジケータを参照)と、フリンジカーソルをビットマップにマッピングする変数 fringe-cursor-alist(フリンジカーソルを参照)によって参照されます。

Lispプログラムでは、行に含まれる文字のいずれかにdisplayプロパティを指定することで、左右のフリンジにビットマップを直接表示することも可能です(その他の表示仕様を参照)。このような表示仕様は、次のような形式になります。

(fringe bitmap [face])

fringe は、シンボル left-fringe または right-fringe のいずれかです。bitmap は、表示するビットマップを識別するシンボルです。オプションの face は、ビットマップの表示に使用する前景色と背景色を持つフェイスを指定します。face で指定されなかった色については、fringe フェイスの属性が使用されます。face が省略された場合は、fringe フェイスで指定されなかった色について、default フェイスの属性を使用することを意味します。default および fringe フェイスの属性に依存しない予測可能な結果を得るには、face を省略せず、常に特定のフェイスを指定することを推奨します。特に、ビットマップを常に fringe フェイスで表示させたい場合は、fringe を face として使用してください。

例えば、左フリンジに矢印を表示するには、warningフェイスを使用して、次のように記述できます。

(overlay-put
 (make-overlay (point) (point))
 'before-string (propertize
                 "x" 'display
                 `(left-fringe right-arrow warning)))

以下に、Emacsで定義されている標準のフリンジビットマップの一覧と、それらが現在Emacsでどのように使用されているか(fringe-indicator-alistおよびfringe-cursor-alist経由)を示します。

left-arrow, right-arrow

省略された行を示すのに用いられる。

left-curly-arrow, right-curly-arrow

継続行を示すのに用いられる。

right-triangle, left-triangle

前者はオーバーレイ矢印で使用されます。後者は使用されません。

up-arrow, down-arrow
bottom-left-angle, bottom-right-angle
top-left-angle, top-right-angle
left-bracket, right-bracket
empty-line

バッファの境界を示すために使用される。

filled-rectangle, hollow-rectangle
filled-square, hollow-square
vertical-bar, horizontal-bar

さまざまな種類のフリンジカーソルに使用されます。

exclamation-mark, question-mark
large-circle

Emacsのコア機能では使用されません。

次の小節では、独自のフリンジビットマップを定義する方法について説明します。

関数: fringe-bitmaps-at-pos &optional pos window

この関数は、ウィンドウ window 内の位置 pos を含む表示行のフリンジビットマップを返します。戻り値は (left right ov) の形式となり、ここで left は左フリンジのフリンジビットマップを表すシンボル(ビットマップがない場合は nil)、right は右フリンジについても同様に、ov は左フリンジにオーバーレイ矢印がある場合に non-nil となります。

window に pos が表示されない場合、値は nil となります。window が nil である場合、それは選択中のウィンドウを表します。pos が nil である場合、それは window におけるポイントの値を表します。