42.26 工具提示

工具提示(Tooltips)是一类特殊框架(see 框架),用于显示与鼠标指针当前位置相关的提示信息(又称 “tips”)。 Emacs 使用工具提示显示文本活动区域的帮助字符串(see 具有特殊含义的文本属性),以及各类界面元素的提示,如菜单项(see 扩展菜单项)和工具栏按钮(see 工具栏)。

Function: tooltip-mode

工具提示模式是一个启用工具提示显示的次要模式。 关闭该模式后,工具提示会显示在回显区。 在文本模式(又称 “TTY”)框架上,工具提示始终显示在回显区。

当 Emacs 基于 GTK+ 工具包或 Haiku 窗口系统编译时,默认使用工具包函数显示工具提示,其外观由工具包设置控制。 可将变量 use-system-tooltips 设为 nil 以禁用工具包提供的提示。 本小节后续内容介绍如何控制由 Emacs 自身渲染的非工具包提示。

工具提示显示在名为提示框架的专用框架中,这类框架拥有自己的框架参数(see 框架参数)。 与其他框架不同,提示框架的默认参数保存在一个专用变量中。

User Option: tooltip-frame-parameters

该可定制选项保存用于显示工具提示的默认框架参数。 所有字体与颜色参数会被忽略,转而使用 tooltip 文本的视觉样式的对应属性。 若包含 lefttop 参数,会作为相对于框架的绝对坐标定位提示。 (提示相对于鼠标的位置可通过 Tooltips in The GNU Emacs Manual 中介绍的变量定制。) 注意,若存在 lefttop 参数,会覆盖相对鼠标的偏移值。

tooltip 文本的视觉样式决定提示中文本的外观。 通常应使用变宽字体,字号建议小于默认框架字体。

Variable: tooltip-functions

该非常规钩子是一组函数,Emacs 需要显示提示时会依次调用。 每个函数接收一个参数 event,即最后一次鼠标移动事件的副本。 若列表中某函数实际显示了提示,应返回非 nil,后续函数将不再执行。 该变量默认值为单个函数 tooltip-help-tips

若你编写自定义函数加入 tooltip-functions 列表,可能需要知道触发提示的鼠标事件所在的缓冲区。 下列函数可提供该信息。

Function: tooltip-event-buffer event

该函数返回 event 发生时所在的缓冲区。 在 tooltip-functions 的函数中传入该事件参数,即可获取触发提示的文本所在缓冲区。 注意,事件可能不在缓冲区上方(如在工具栏上),此时函数返回 nil

提示显示的其他方面由多个可定制设置控制,详见 Tooltips in The GNU Emacs Manual