Next: , Previous: , Up: 文字の表示   [Contents][Index]


40.22.2 ディスプレーテーブル

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

Function: make-display-table

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

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

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

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

0

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

1

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

2

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

3

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

4

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

5

横並びのウィンドウ間のボーダー描画に使用されるグリフ(デフォルトは‘|’)。ウィンドウの分割を参照のこと。これは現在のところテキスト端末でのみ効果がある。グラフィカル端末では垂直スクロールバーがサポートされていて使用中ならスクロールバーが2つのウィンドウを分割する。垂直スクロールバーとディバイダー(ウィンドウディバイダーを参照)がなければ、Emacsは境界を示すために細いラインを使用する。

たとえば以下は関数make-glyph-codeにたいしてctl-arrowに非nilをセットして得られる効果を模倣するディスプレイテーブル(グリフを参照のこと)を構築する例です:

(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

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