ディスプレイテーブルとは、サブタイプに display-table
を持つ特殊目的の文字テーブル(文字テーブルを参照)であり、通常の文字表示規約を上書きするために使用されます。本節では、ディスプレイテーブルオブジェクトの作成、検査、および要素の割り当て方法について説明します。次節(アクティブディスプレイテーブルを参照)では、各種標準ディスプレイテーブルとその優先順位について説明します。
これにより表示用テーブルが生成され、返されます。このテーブルのすべての要素には、初期状態で nil
が入っています。
表示テーブルの通常の要素は文字コードによってインデックス付けされており、インデックス c
の要素は、文字コード c をどのように表示するかを規定します。その値は nil(通常の表示規約に従って文字 c
を表示することを意味します。通常の表示規約
を参照)、またはグリフコードのベクトル(文字 c をそれらのグリフとして表示することを意味します。グリフ を参照)である必要があります。
注意: 表示テーブルを使用して改行文字の表示を変更すると、バッファ全体が1つの長い行として表示されます。
表示テーブルには、特殊な用途に用いられる6つの追加スロットもあります。以下にそれぞれの意味をまとめた表を示します。いずれかのスロットにnilと記載されている場合は、後述の通り、そのスロットのデフォルト値を使用することを意味します。
切り捨てられた画面行の末尾を示すグリフ(デフォルトは ‘$’)。グリフを参照。グラフィカル端末では、Emacsはデフォルトでフリンジに矢印を用いて切り捨てを示すため、フリンジを無効にしない限り、表示テーブルは効果を発揮しません(GNU Emacs マニュアルのウィンドウフリンジを参照)。
継続行の末尾を示すグリフ(デフォルトは ‘\’)。グラフィカル端末では、Emacsはデフォルトでフリンジに曲線矢印を用いて継続を示すため、フリンジを無効にしない限り、表示テーブルは効果を発揮しません。
文字を8進数の文字コードとして表示することを示すグリフ(デフォルトは ‘\’)。
制御文字を示すグリフ(デフォルトは ‘^’)。
不可視線の存在を示すグリフのベクトル(デフォルトは ‘...’)。選択的表示を参照。
隣接するウィンドウ間の境界線を描画するために使用されるグリフ(デフォルトは ‘|’)。ウィンドウの分割を参照。これは現在、テキスト端末でのみ有効です。グラフィカル端末では、垂直スクロールバーがサポートされ使用されている場合はスクロールバーが2つのウィンドウを区切り、垂直スクロールバーも区切り線(ウィンドウ区切り線を参照)もない場合は、Emacsは細い線を用いて境界線を示します。
端末上の子フレームを囲む単一行ボーダーのグリフ。垂直、水平、右下端、左下端、右上、左上端の順に配置される。水平グリフは、単一行のttyメニュー区切り線にも使用される。
二重線の枠線を表すグリフ。垂直線、水平線、右下端、左下端、右上端、左上端の順に並んでいる。水平線のグリフは単一線のTTYメニュー区切り線にも使用されており、その他のグリフはまだ使用されていない。
例えば、ctl-arrow に nil
以外の値を設定した際の効果を再現する表示テーブルの構築方法を以下に示します(関数 make-glyph-code については Glyphs を参照してください):
(setq disptab (make-display-table))
(dotimes (i 32)
(or (= i ?\t)
(= i ?\n)
(aset disptab i
(vector (make-glyph-code ?^ 'escape-glyph)
(make-glyph-code (+ i 64) 'escape-glyph)))))
(aset disptab 127
(vector (make-glyph-code ?^ 'escape-glyph)
(make-glyph-code ?? 'escape-glyph)))
この関数は、display-table の追加スロット slot の値を返します。引数 slot には、0から17までの数値、またはスロット名、シンボルを指定できます。
この関数は、display-table の追加スロット slot に value を格納します。引数 slot には、0から17までの数値、またはスロット名、シンボルを指定できます。
有効なスロット名記号は、truncation、wrap、escape、control、selective-display、vertical-border、box-vertical、box-horizontal、box-down-right、box-down-left、box-up-right、box-up-left、box-double-vertical、box-double-horizontal、box-double-down-right、box-double-down-left、box-double-up-right、box-double-up-leftです。
この関数は、ヘルプバッファに表示テーブル display-table の説明を表示します。
この関数は、standard-display-table の追加スロットに適切な Unicode 文字を設定します。
このコマンドは、現在の表示テーブルの説明をヘルプバッファに表示します。