大多数键盘还带有 功能键(function keys)—这些按键的名称或符号并非字符。
在 Emacs Lisp 中,功能键以符号表示;符号的名称即为功能键的标签,采用小写形式。
例如,按下标签为 F1 的按键会产生一个由符号 f1 表示的输入事件。
功能键事件的事件类型就是事件符号本身。 See 事件分类。
以下是功能键符号命名约定中的几个特殊情况:
backspace, tab, newline, return, delete这些按键对应常见的 ASCII 控制字符,大多数键盘上都设有专用按键。
在 ASCII 中,C-i 与 TAB 是同一个字符。
如果终端能够区分二者,Emacs 会将前者表示为整数 9,后者表示为符号 tab,
从而向 Lisp 程序传递这一区别。
大多数情况下,区分这两者并无实际意义。因此通常会设置
local-function-key-map(see 事件序列翻译键盘映射),
将 tab 映射为 9。于是,针对字符编码 9(即字符 C-i)的按键绑定
同样适用于 tab。该组中的其他符号也是同理。
函数 read-char 同样会将这些事件转换为字符。
在 ASCII 中,BS 实际上是 C-h。
但 backspace 会转换为字符编码 127(DEL),而非编码 8(BS)。
这符合大多数用户的习惯。
left, up, right, down光标方向键
kp-add, kp-decimal, kp-divide, …小键盘按键(位于主键盘右侧)。
kp-0, kp-1, …带数字的小键盘按键。
kp-f1, kp-f2, kp-f3, kp-f4小键盘 PF 键。
kp-home, kp-left, kp-up, kp-right, kp-down小键盘方向键。Emacs 通常会将它们转换为对应的普通按键
home、left、…
kp-prior, kp-next, kp-end, kp-begin, kp-insert, kp-delete小键盘上对其他位置常用按键的重复映射。 Emacs 通常会将它们转换为同名的普通按键。
你可以将修饰键 ALT、CTRL、HYPER、 META、SHIFT 和 SUPER 与功能键组合使用。 表示方式是在符号名称中添加前缀:
Alt 修饰键。
Ctrl 修饰键。
Hyper 修饰键。
Meta 修饰键。
Shift 修饰键。
Super 修饰键。
因此,同时按下 META 和 F3 所对应的符号为 M-f3。
当使用多个前缀时,建议按字母顺序书写;
但在按键绑定查找与修改函数的参数中,顺序并不影响结果。