23.18.1.4 别名菜单项

有时创建使用相同命令、但启用条件不同的菜单项是很有用的。 目前在 Emacs 中实现此功能的最佳方式是使用扩展菜单项; 在该特性出现之前,可以通过定义别名命令并在菜单项中使用它们来实现。 下面是一个示例,为 read-only-mode 创建两个别名,并为它们设置不同的启用条件:

(defalias 'make-read-only 'read-only-mode)
(put 'make-read-only 'menu-enable '(not buffer-read-only))
(defalias 'make-writable 'read-only-mode)
(put 'make-writable 'menu-enable 'buffer-read-only)

在菜单中使用别名时,通常需要显示真实命令名称对应的等效按键绑定, 而非别名本身(别名通常除菜单外一般不会绑定任何按键)。 若要实现此效果,可为别名符号设置一个非 nilmenu-alias 属性。如下所示:

(put 'make-read-only 'menu-alias t)
(put 'make-writable 'menu-alias t)

这样会使 make-read-onlymake-writable 对应的菜单项 显示 read-only-mode 的键盘绑定。

emacs

Emacs

org-mode

Orgmode

Donations

打赏

Copyright

© Jasper Hsu

Creative Commons

Creative Commons

Attribute

Attribute

Noncommercial

Noncommercial

Share Alike

Share Alike