22.7.2 功能键

大多数键盘还带有 功能键(function keys)—这些按键的名称或符号并非字符。 在 Emacs Lisp 中,功能键以符号表示;符号的名称即为功能键的标签,采用小写形式。 例如,按下标签为 F1 的按键会产生一个由符号 f1 表示的输入事件。

功能键事件的事件类型就是事件符号本身。 See 事件分类

以下是功能键符号命名约定中的几个特殊情况:

backspace, tab, newline, return, delete

这些按键对应常见的 ASCII 控制字符,大多数键盘上都设有专用按键。

ASCII 中,C-iTAB 是同一个字符。 如果终端能够区分二者,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 通常会将它们转换为对应的普通按键 homeleft、…

kp-prior, kp-next, kp-end, kp-begin, kp-insert, kp-delete

小键盘上对其他位置常用按键的重复映射。 Emacs 通常会将它们转换为同名的普通按键。

你可以将修饰键 ALTCTRLHYPERMETASHIFTSUPER 与功能键组合使用。 表示方式是在符号名称中添加前缀:

A-

Alt 修饰键。

C-

Ctrl 修饰键。

H-

Hyper 修饰键。

M-

Meta 修饰键。

S-

Shift 修饰键。

s-

Super 修饰键。

因此,同时按下 METAF3 所对应的符号为 M-f3。 当使用多个前缀时,建议按字母顺序书写; 但在按键绑定查找与修改函数的参数中,顺序并不影响结果。


emacs

Emacs

org-mode

Orgmode

Donations

打赏

Copyright

© Jasper Hsu

Creative Commons

Creative Commons

Attribute

Attribute

Noncommercial

Noncommercial

Share Alike

Share Alike