如果一个按键映射带有整体提示字符串(overall prompt string)(该字符串作为按键映射的一个元素), 它就可以作为菜单使用。(See 按键映射的格式.) 该字符串应描述菜单中命令的用途。 根据显示菜单所使用的工具集(如果有),Emacs 会在某些情况下将整体提示字符串作为菜单标题显示。19 键盘菜单也会显示该整体提示字符串。
创建带有提示字符串的按键映射最简单的方法是,
在调用 make-keymap、make-sparse-keymap (see 创建按键映射) 或
define-prefix-command (see Definition of define-prefix-command) 时,
将该字符串作为参数传入。如果你不希望该按键映射用作菜单,则不要为其指定提示字符串。
该函数返回 keymap 的整体提示字符串,如果没有则返回 nil。
菜单项就是按键映射中的绑定。每个绑定将一个事件类型关联到一个定义, 但事件类型对菜单外观没有影响。(我们通常使用伪事件—即键盘无法生成的符号—作为菜单项绑定的事件类型。)菜单完全根据按键映射中这些事件对应的绑定生成。
菜单项的顺序与按键映射中绑定的顺序一致。由于 define-key 会将新绑定放在前面,
如果你在意顺序,应该从菜单底部向上依次定义菜单项。
向已有菜单添加项时,可以使用 keymap-set-after 指定其在菜单中的位置。(see 修改菜单)