42.13.6 覆盖箭头

覆盖箭头(overlay arrow) 用于引导用户关注缓冲区中的特定行。 例如,在调试器交互模式中,覆盖箭头指示即将执行的代码行。 该功能与 覆盖层(overlays) 无关 (see 覆盖层)。

Variable: overlay-arrow-string

该变量保存用于标记特定行的显示字符串, 若未启用箭头功能则为 nil。 在图形化显示中,若左侧侧边栏可见,字符串内容将被忽略, 转而在显示区域左侧的侧边栏区域显示一个字形。

Variable: overlay-arrow-position

该变量保存一个标记,指示覆盖箭头的显示位置, 应指向行首。在非图形化显示或左侧侧边栏不可见时, 箭头文本会显示在该行开头,覆盖原本应出现的文本。 由于箭头通常较短且行首一般有缩进, 通常不会覆盖重要内容。

若缓冲区中 overlay-arrow-position 的值指向该缓冲区, 则会在该缓冲区显示覆盖箭头字符串。 因此可通过为 overlay-arrow-position 创建缓冲区局部绑定 显示多个覆盖箭头字符串。不过更简洁的方式是使用 overlay-arrow-variable-list 实现该效果。

也可以通过创建带有 before-string 属性的覆盖层实现类似效果。See 覆盖层属性

可通过变量 overlay-arrow-variable-list 定义多个覆盖箭头。

Variable: overlay-arrow-variable-list

该变量的值为变量列表,每个变量指定一个覆盖箭头的位置。 overlay-arrow-position 之所以具有常规含义, 是因为它在该列表中。

该列表中的每个变量可带有属性 overlay-arrow-stringoverlay-arrow-bitmap, 分别指定在对应位置显示的覆盖箭头字符串 (用于文本终端或无左侧侧边栏的图形终端) 或侧边栏位图(用于带左侧侧边栏的图形终端)。 若未设置任一属性,则使用默认的 overlay-arrow-stringoverlay-arrow 侧边栏指示器。