显示表是一种专用字符表(see 字符表),子类型为 display-table,
用于覆盖常规的字符显示规则。本节介绍如何创建、查看以及为显示表对象赋值。
下一节(see 活动显示表)介绍各种标准显示表及其优先级。
创建并返回一个显示表。该表初始所有元素均为 nil。
显示表的普通元素以字符编码为索引;索引 c 处的元素说明如何显示字符编码 c。
值应为 nil(表示按常规显示规则显示字符 c;see 常规显示规则),
或字形编码向量(表示按这些字形显示字符 c;see 字形)。
警告:如果使用显示表修改换行符的显示,整个缓冲区会显示为一长行。
显示表还包含六个 额外槽位(extra slots),用于特殊用途。下表为其含义;任意槽位为 nil
表示使用该槽位的默认值,如下所述。
表示屏幕行被截断末尾的字形(默认值为 ‘$’)。See 字形。 在图形终端上,Emacs 默认在边缘使用箭头表示截断,因此显示表无效,除非禁用边缘(see Window Fringes in the GNU Emacs Manual)。
表示折行末尾的字形(默认值为 ‘\’)。 在图形终端上,Emacs 默认在边缘使用弯箭头表示折行,因此显示表无效,除非禁用边缘。
表示以八进制编码显示字符时所用的字形(默认值为 ‘\’)。
表示控制字符的字形(默认值为 ‘^’)。
表示存在隐藏行的字形向量(默认值为 ‘...’)。See 选择性显示。
用于绘制并排窗口间边框的字形(默认值为 ‘|’)。See 拆分窗口。 目前仅在文本终端有效;在图形终端上,若支持并启用垂直滚动条,滚动条会分隔两个窗口, 若无垂直滚动条且无分隔线(see 窗口分隔线),Emacs 使用细线表示边框。
例如,以下代码构造一个显示表,模拟将 ctl-arrow 设置为非 nil 的效果
(see 字形,函数 make-glyph-code 用法):
(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。
将 value 存入 display-table 的额外槽位 slot。
参数 slot 可以是 0 至 5 的数字,或槽位名称(符号)。
有效符号为 truncation、wrap、escape、control、
selective-display 和 vertical-border。
在帮助缓冲区中显示 display-table 的描述信息。
在帮助缓冲区中显示 display-table 的描述信息。