23.18.1.1 简单菜单项

定义菜单项更简单(也是最初)的方式,是将某种事件类型(具体事件类型无关紧要)绑定为如下形式:

(item-string . real-binding)

其中 CAR 部分 item-string 是在菜单中显示的字符串。 它应当简短—最好一到三个词,并描述其所对应命令的功能。 注意并非所有图形工具集都能在菜单中显示非ASCII文本(键盘菜单可以正常显示,GTK+ 工具集也基本支持)。

你也可以额外提供第二个字符串,称为帮助提示字符串,写法如下:

(item-string help . real-binding)

help 指定了当鼠标悬停在该项上时显示的帮助提示字符串,其显示方式与 help-echo 文本属性相同(see Help display)。

define-key 而言,item-stringhelp-string 属于事件绑定的一部分。 但 lookup-key 只返回 real-binding,且执行按键时也只使用 real-binding

如果 real-bindingnil,则 item-string 会出现在菜单中,但无法被选中。

如果 real-binding 是一个符号,并且拥有非 nilmenu-enable 属性, 则该属性是一个表达式,用于控制菜单项是否可用。 每次使用该按键映射显示菜单时,Emacs 都会求值该表达式,仅当结果非 nil 时才启用该菜单项。 菜单项被禁用时会以模糊样式显示,且无法选中。

菜单栏并不会在每次查看菜单时重新计算哪些项可用。 这是因为 X 工具集需要预先获得完整的菜单树形结构。 若要强制刷新菜单栏的可用状态,可调用 force-mode-line-update(see 模式行格式)。

emacs

Emacs

org-mode

Orgmode

Donations

打赏

Copyright

© Jasper Hsu

Creative Commons

Creative Commons

Attribute

Attribute

Noncommercial

Noncommercial

Share Alike

Share Alike