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


37.21.2 ディスプレーテーブル

ディスプレイテーブルとはサブタイプとしてdisplay-tableをもつ特殊用途の文字テーブル(Char-Tablesを参照)であり、文字の通常の表示慣習をオーバーライドするために使用されます。このセクションではディスプレイテーブルオブジェクトの作成と調査、および要素を割り当てる方法について説明します。

Function: make-display-table

これはディスプレイテーブルを作成してリターンする。テーブルは初期状態ではすべての要素にnilをもつ。

ディスプレイテーブルの通常の要素は文字コードによりインデックス付けされます。インデックスcの要素はコードcの表示方法を示します。値はnil (これは通常の表示慣習に応じて文字cを表示することを意味する。Usual Displayを参照)、またはグリフコードのベクター(これらのグリフとして文字cを表示することを意味する。Glyphsを参照)のいずれかです。

警告: 改行文字の表示を変更するためにディスプレイテーブルを使用すると、バッファー全体が1つの長い“行”として表示されるだろう。

ディスプレイテーブルは特殊用途向けに、6つの“エクストラスロット(extra slots)”をもつこともできます。以下は、それらの意味についてのテーブルです。nilのスロットは、以下で示すそのスロットにたいするデフォルトの使用を意味します。

0

切り詰められたスクリーン行終端のグリフ(デフォルトでは‘$’)。Glyphsを参照のこと。グラフィカルな端末ではEmacsは切り詰められたことをフリンジ内の矢印で示してディスプレイテーブルは使用しない。

1

継続行終端のグリフ(デフォルトは‘\’)。グラフィカルな端末ではEmacsは継続をフリンジ内の曲矢印で示してディスプレイテーブルは使用しない。

2

8進文字コードとして表示される文字を示すグリフ(デフォルトは‘\’)。

3

コントロール文字を示す(デフォルトは‘^’)。

4

不可視行があることを示すグリフのベクター(デフォルトは‘...’)。Selective Displayを参照のこと。

5

横並びのウィンドウ間のボーダー描画に使用されるグリフ(デフォルトは‘|’)。Splitting Windowsを参照のこと。これはスクロールバーが存在するときだけ効果をもつ。スクロールバーがサポートされていて使用中ならスクロールバーが2つのウィンドウを分割する。

たとえば以下は関数make-glyph-codeにたいしてctl-arrowに非nilをセットして得られる効果を模倣するディスプレイテーブル(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)))))
Function: display-table-slot display-table slot

この関数はdisplay-tableのエクストラスロットslotの値をリターンする。引数slotには0から5の数字(両端を含む)、またはスロット名(シンボル)を指定できる。有効なシンボルはtruncationwrapescapecontrolselective-displayvertical-border

Function: set-display-table-slot display-table slot value

この関数はdisplay-tableのエクストラスロットslotvalueを格納する。引数slotには0から5の数字(両端を含む)、またはスロット名(シンボル)を指定できる。有効なシンボルはtruncationwrapescapecontrolselective-displayvertical-border

Function: describe-display-table display-table

この関数はヘルプバッファーにディスプレイテーブルdisplay-tableの説明を表示する。

Command: describe-current-display-table

このコマンドはヘルプバッファーにカレントディスプレイテーブルの説明を表示する。