Emacs 使用read char exclusive时如何使用箭头键中止函数

Emacs 使用read char exclusive时如何使用箭头键中止函数,emacs,Emacs,当函数依赖于read char exclusive时,是否有方法使用箭头键中止函数 本质上,我正在寻找一种方法,使Emacs认为箭头键是字符键。如果该行为因任何原因出现问题,那么在函数结束后,按箭头键,该行为可能会恢复正常。我认为您需要使用读取事件 字符事件作为相关整数返回,就像readchar一样 箭头键作为符号返回(左,右,向上,向下) (let((事件(读取事件))) (cond((characterp事件) (消息“字符:%s”(字符到字符串事件))) ((和(symbolp事件)(me

当函数依赖于
read char exclusive
时,是否有方法使用箭头键中止函数


本质上,我正在寻找一种方法,使Emacs认为箭头键是字符键。如果该行为因任何原因出现问题,那么在函数结束后,按箭头键,该行为可能会恢复正常。

我认为您需要使用
读取事件

字符事件作为相关整数返回,就像
readchar
一样

箭头键作为符号返回(
向上
向下

(let((事件(读取事件)))
(cond((characterp事件)
(消息“字符:%s”(字符到字符串事件)))
((和(symbolp事件)(memq事件(左-右-上-下)))
(消息“箭头键:%s”(符号名称事件)))
(t
(错误“意外事件”))

是的,@phils说了什么。您可以建议
read char exclusive
,但您没有给出任何理由这样做。除非您有特殊理由使用(修改后的)
read char exclusive
,否则请使用
read event
(甚至可能是
read key
,具体取决于您的实际需要)。我正在尝试修改@abo abo在本文中编写的函数:这是此线程的后续:由于使用此函数选择了组织议程缓冲区,因此箭头键将非常有助于退出该函数。我现在尝试使用
读取事件
,但收到以下错误消息:
和:错误类型参数:number-or-marker-p,down
lawlist:显然是因为符号
down
已到达某个假定字符值的代码(字符是数字)。根据我的示例代码,您需要处理
read event
可以返回的其他类型。是的,这样做了--非常感谢--非常感谢!!!!在讨论中的@abo abo函数中,我没有使用
的格式和字符(例如
(?O 10)
),而是添加了四个
(月)(案例a
条件--
('up 500)
('down 501)
('left 502)
('code>('right 503)
),以及稍微修改的if/then/else--
(如果(不)(和(setq lawlist月)(大于等于0月)(