2

我想注册一个点击事件并根据position, window..etc 执行操作。

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

所以,基本上我正在寻找一个行为类似于attach-handler下面 senario 的函数。

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

2 回答 2

5

您可以使用interactive声明的代码字母“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))))))
于 2012-04-04T21:36:59.617 回答
2

它们都是钥匙。尝试C-h c(或C-h k)并单击鼠标按钮以查看当前绑定的内容。然后使用M-x global-set-key将其设置为您想要的任何内容。您的功能必须是将interactive其绑定到一个键。

于 2012-04-04T20:42:20.207 回答