2022/06/08

Emacs keymap 格式

每个 keymap 都是一个 CAR 为 keymap 符号组成的一个列表。列表剩余的元素定义了这个 keymap 的按键绑定。其函数定义的 keymap 符号同样也是 keymap。使用 keymapp 函数来测试一个对象是否是 keymap。


从 keymap 符号开始,后面可能出现的元素:


(type . binding):type 指的是事件类型。键盘事件的事件类型等于事件值,功能键的事件类型是符号本身。binding 因该是一个命令。

(type item-name . binding):指定简单菜单项,会显示一个菜单项,菜单显示为 item-name。

(type item-name help-string . binding):在上面的基础上增加了帮助字符串。

(type menu-item . details):指明一个扩展菜单项.

(t . binding): 定义默认绑定,任何没有显示绑定的事件都会使用默认绑定。

char-table:定义所有没有修饰微字符事件的绑定,字符事件的值作为索引,对应的命令即为字符事件的绑定。

vector: 类似与 char-table。

string: 作为提示字符串。

(keymap …):表示继承。

当一个绑定为nil时,也优先于父按键映射中的绑定。但是它并不会覆盖优先级较低的按键映射。

搬瓦工上新