为emacs lisp注册单击事件

为emacs lisp注册单击事件,emacs,lisp,Emacs,Lisp,我想注册一个点击事件,并根据位置、窗口等执行操作 此站点,http://www.gnu.org/software/emacs/manual/html_node/elisp/Click-Events.html,显示了事件变量的布局,但如何将处理程序实际附加到单击事件 因此,基本上我正在寻找一个函数,它的行为类似于下面的senario中的attach handler (attach-handler [mouse-1] `(lambda (e) (foo e)) 它们都是钥匙。尝试C

我想注册一个点击事件,并根据
位置
窗口
等执行操作

此站点,
http://www.gnu.org/software/emacs/manual/html_node/elisp/Click-Events.html
,显示了事件变量的布局,但如何将处理程序实际附加到单击事件

因此,基本上我正在寻找一个函数,它的行为类似于下面的senario中的
attach handler

(attach-handler [mouse-1] 
       `(lambda (e) (foo e))

它们都是钥匙。尝试
C-hc
(或
C-hk
)并单击鼠标按钮查看当前绑定到的内容。然后使用
M-x全局设置键
将其设置为您想要的任何值。您的函数必须是交互式的,才能将其绑定到键

您可以使用
交互式
声明的代码字母'e'访问事件;e、 例如,以下内容将使左键单击在单击点插入事件数据:

(define-key global-map (kbd "<down-mouse-1>")
  (lambda (event)
    (interactive "e")
    (message "%s" event)
    (let ((posn (elt event 1)))
      (with-selected-window (posn-window posn)
        (goto-char (posn-point posn))
        (insert (format "%s" event))))))
(定义键全局映射(kbd“”)
(lambda(事件)
(交互式“e”)
(消息“%s”事件)
(let((posn(英语教学事件1)))
(带有选定窗口(posn窗口posn)
(转到字符(posn点posn))
(插入(格式“%s”事件(()()))

好的,那么如何在下面的语句中获取
事件
信息呢<代码>(全局设置键[mouse-1]`(lambda()(交互式)(打印事件))您是否从
打印
中得到了什么?您可能希望创建命名函数,而不是
lambda
edebug
来查看事件是否有任何有趣的属性。另外,还可以查看
上次输入事件
上次命令事件
。哦,还有
鼠标事件-p
和其他.