emacs 中可以用快捷键替换鼠标悬停和鼠标点击么

有些插件鼠标悬停和鼠标点击分别对应不同的功能,可以绑定快捷键完成鼠标悬停和鼠标点击的操作么?

都应该是如此吧,鼠标悬停 Hover 和点击 Click 是两个完全不同的交互方式。

不清楚 Emacs 鼠标事件究竟怎么控制的了。

印象中鼠标悬停会显示一个 tooltip,如果开发者有设置 help-echo 这个 text property 的话,要用键盘激活的话,C-h . (M-x display-local-help),当然 Mode line 这里没办法用键盘的。

鼠标点击的话,应该是 keymap 操作实现的,一般开发者会同时设置鼠标点击和 RET,所以移动光标然后直接 RET。

2 个赞

使用display-local-help,可以在minibuffer 显示信息。看了下它的实现,写了个tooltip的版本

(defun mouse-hover-tooltip (&optional arg)
  "Show mouse hover help info using pos-tip-show."
  (interactive)
  (let ((help (help-at-pt-kbd-string)))
    (if help
        (pos-tip-show help nil nil nil 0)
      (if (not arg) (message "No local help at point"))))
  (unwind-protect
      (push (read-event) unread-command-events)
    (pos-tip-hide)))

鼠标点击,可以移动光标然后直接 RET!

赞一个!!!