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