Next: Active Display Table, Previous: Usual Display, Up: Character Display [Contents][Index]
ディスプレイテーブルとはサブタイプとしてdisplay-tableをもつ特殊用途の文字テーブル(Char-Tablesを参照)であり、文字の通常の表示慣習をオーバーライドするために使用されます。このセクションではディスプレイテーブルオブジェクトの作成と調査、および要素を割り当てる方法について説明します。
これはディスプレイテーブルを作成してリターンする。テーブルは初期状態ではすべての要素にnilをもつ。
ディスプレイテーブルの通常の要素は文字コードによりインデックス付けされます。インデックスcの要素はコードcの表示方法を示します。値はnil
(これは通常の表示慣習に応じて文字cを表示することを意味する。Usual Displayを参照)、またはグリフコードのベクター(これらのグリフとして文字cを表示することを意味する。Glyphsを参照)のいずれかです。
警告: 改行文字の表示を変更するためにディスプレイテーブルを使用すると、バッファー全体が1つの長い行として表示されるでしょう。
ディスプレイテーブルは特殊用途向け6つのエクストラスロット(extra
slots)をもつこともできます。以下はそれらの意味についてのテーブルです。nilのスロットは以下で示すそのスロットにたいするデフォルトの使用を意味します。
切り詰められたスクリーン行終端のグリフ(デフォルトでは‘$’)。Glyphsを参照のこと。グラフィカルな端末ではフリンジを無効にしていなれば(Window Fringes in the GNU Emacs Manualを参照)、Emacsはデフォルトでは切り詰められたことをフリンジ内の矢印で示し、ディスプレイテーブルは使用しない。
継続行終端のグリフ(デフォルトは‘\’)。グラフィカルな端末ではフリンジを無効にしていなれば、デフォルトではEmacsは継続ををフリンジ内の曲矢印で示し、ディスプレイテーブルは使用しない。
8進文字コードとして表示される文字を示すグリフ(デフォルトは‘\’)。
コントロール文字を示す(デフォルトは‘^’)。
不可視行があることを示すグリフのベクター(デフォルトは‘...’)。Selective Displayを参照のこと。
横並びのウィンドウ間のボーダー描画に使用されるグリフ(デフォルトは‘|’)。Splitting Windowsを参照のこと。これは現在のところテキスト端末でのみ効果がある。グラフィカル端末では垂直スクロールバーがサポートされていて使用中ならスクロールバーが2つのウィンドウを分割する。垂直スクロールバーとディバイダー(Window Dividersを参照)がなければ、Emacsは境界を示すために細いラインを使用する。
たとえば以下は関数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)))))
この関数はdisplay-tableのエクストラスロットslotの値をリターンする。引数slotには0から5の数字(両端を含む)、またはスロット名(シンボル)を指定できる。有効なシンボルはtruncation、wrap、escape、control、selective-display、vertical-border。
この関数はdisplay-tableのエクストラスロットslotにvalueを格納する。引数slotには0から5の数字(両端を含む)、またはスロット名(シンボル)を指定できる。有効なシンボルはtruncation、wrap、escape、control、selective-display、vertical-border。
この関数はヘルプバッファーにディスプレイテーブルdisplay-tableの説明を表示する。
このコマンドはヘルプバッファーにカレントディスプレイテーブルの説明を表示する。