点击和拖拽事件在用户释放鼠标按键时才会发生。 它们不会提前发生,因为在按键释放之前无法区分点击和拖拽。
如果你希望在按键一按下时就执行操作,就需要处理 button-down(按键按下)事件。18 这类事件在按键按下时立即发生。 它们的列表形式与点击事件完全相同(see 点击事件), 区别仅在于 event-type 符号名称包含前缀 ‘down-’。 ‘down-’ 前缀位于修饰键前缀(如 ‘C-’ 和 ‘M-’)之后。
函数 read-key-sequence 会忽略所有没有命令绑定的按键按下事件;
因此,Emacs 命令循环也会忽略它们。
这意味着除非你希望它们执行某些操作,否则无需定义按键按下事件。
定义按键按下事件的常见用途是:在按键释放前跟踪鼠标移动(通过读取移动事件)。
See 移动事件。