我有一个使用(case (read-event) . . .)
的函数 - 在函数持续时间内,我无法使down-mouse-1
等于整数。以下是down-mouse-1
生成Try again
而不是Hello world
的结果的示例。以下所有示例均有效,down-mouse-1
除外:('f12 516)
; (?\s-k 517)
; ('f3 518)
; ('C-tab 519)
; ('C-M-s-right 520)
; (?m 522)
。
(let* (
(test (case (read-event)
('down-mouse-1 9999))))
(cond
((eq test 9999)
(message "Hello world."))
(t (message "Try again."))))
答案 0 :(得分:1)
我不清楚你要做什么。但是你不应该引用case
子句中的键。例如,使用down-mouse-1
,而不是'down-mouse-1
。
答案 1 :(得分:1)
read-event
永远不会返回down-mouse-1
。对于鼠标单击,它将返回的第一个事件看起来像(down-mouse-1 ...)
。所以你可以这样做:
(pcase (read-event)
(`(down-mouse-1 . ,_) 9999))
请注意,根据我的经验,read-event
99%的用途会更好地重写。