22.9 特殊事件

某些 特殊事件(special events) 会在极低层级被处理——一旦被读取就立即处理。 read-event 函数会自行处理这些事件,永远不会将它们返回。 相反,它会持续等待第一个非特殊事件,并返回该事件。

特殊事件不会回显,不会被组合成按键序列,也不会出现在 last-command-event(this-command-keys) 的值中。它们不会丢弃数值参数,不能通过 unread-command-events 回退,不能出现在键盘宏中,在定义键盘宏时也不会被记录。

但是,特殊事件在被读取后会立即出现在 last-input-event 中, 事件的处理函数可以通过该变量获取实际的事件。

事件类型 iconify-framemake-frame-visibledelete-framedrag-n-droplanguage-change 以及用户信号如 sigusr1 通常都以这种方式处理。 用于定义如何处理特殊事件(以及哪些事件是特殊事件)的按键映射表存放在变量 special-event-map 中(see 控制活跃按键映射表)。

emacs

Emacs

org-mode

Orgmode

Donations

打赏

Copyright

© Jasper Hsu

Creative Commons

Creative Commons

Attribute

Attribute

Noncommercial

Noncommercial

Share Alike

Share Alike