在特殊模式下如何以及在何处更改鼠标按钮行为

How and where to change mouse button behaviour in a special mode

在启用flyspell的Markdown模式下,mouse-2绑定到mouse-yank-primary也绑定到flyspell-correct-word,在菜单修正命题中显示的flyspell功能。如果缓冲区为空,则显示菜单,否则,将提取其内容。哎呀。

我花了一些时间试图找到更改第二个绑定的位置,但由于我不是 emacs 大师,所以我迷路了。我在 ~/.emacs.d/init.el 中尝试了 (global-set-key "S-mouse-2" #'flyspell-correct-word),但我没有设法让任何东西正常工作。

所以问题是如何以及在何处将 say S-mouse-2 绑定到该函数。更好的解决方案是保留两个绑定,但当鼠标悬停在需要更正的单词上时,菜单优先于拉动。

在我的 GNU Emacs 25.2.2 上,命令(从 *scratch* 缓冲区执行)

(global-set-key "S-mouse-2" #'flyspell-correct-word)

弹出调试器。然而,

(global-set-key [S-mouse-2] #'flyspell-correct-word)

有效,同样如此

(global-set-key [S-mouse-2] 'flyspell-correct-word)

您可以通过以下方式查看效果:

(global-key-binding [S-mouse-2])