Emacs 禁用右侧鼠标按钮上的帮助菜单(x-coord>0x7F)

Emacs 禁用右侧鼠标按钮上的帮助菜单(x-coord>0x7F),emacs,Emacs,当我单击或滚动鼠标滚轮时,其指针位于屏幕的右侧,没有文本,emacs显示帮助菜单,如下所示: Press PageUp key to reach this buffer from the minibuffer. Alternatively, you can use Up/Down keys (or your History keys) to change --/.../-- In this buffer, type RET to select the completion near point.

当我单击或滚动鼠标滚轮时,其指针位于屏幕的右侧,没有文本,emacs显示帮助菜单,如下所示:

Press PageUp key to reach this buffer from the minibuffer. Alternatively, you can use Up/Down keys (or your History keys) to change --/.../-- In this buffer, type RET to select the completion near point. Possible completions are: e==>Emacs Tutorial E==>Emacs Tutorial (choose language)... --/.../-- a==>About Emacs A==>About GNU ================================================================================= ;; here my work buffer ================================================================================= Help (up/down to change, PgUp to menu): e==>Emacs Tutorial 这是非常令人不安的,我必须按C-g返回编辑。 如何禁用此功能

另外,我试着按C-HK,但它没有显示键的代码,它再次显示了菜单

编辑回应Stefan:

按下:aaa C-g C-h l后,我看到以下顺序:

。。。电子稳定控制系统 [M SPC\300\256 6 ESC[M\300\256 6 C-g C-h l

我发现,这些符号:\300\256和6取决于我单击时光标的位置。\300\256是类似smth的水平坐标,6是垂直坐标

我进一步研究了它:当y坐标从一个普通符号(如a或}或DEL)变为代码(如\300\200)时,菜单出现。这是第一个值,导致出现帮助菜单。unicode告诉我们,DEL代码是U+007F0b01111111,下一个值将是U+008000b10000000填充字符,而我s在另一个表中:C1对照和拉丁语-1补充


我在PuTTy ssh客户端上使用GNU emacs 23.2.1。

这听起来不像emacs默认配置中的任何功能。我建议您尝试:a,然后是C-HL,它应该显示emacs接收到的最后几个事件。尝试找出其中哪些事件对应,它们将在a之后立即出现以查看当您这样做时,操作系统会向Emacs发送什么。

这实际上是一个bug。 这里有一个解决方法:

;; Disable menubar
(menu-bar-mode -1)

;; Workaround for "mouse on menu-bar" bug
(defun transform-to-start-event (event)
  (let ((y0 (second (window-inside-edges (selected-window))))
        (x0 (first (window-inside-edges (selected-window)))))
    (let ((x (- (car (third (second event))) #x3fff00 x0))
          (y (- (cdr (third (second event))) y0))
          (time (fourth (second event))))
      `(down-mouse-1 ,(posn-at-x-y x y (window-at 0 0) t)))))

(defun tmm-menubar-mouse (event)
  (interactive "e")
  (let ((evt (transform-to-start-event event)))
    (push (cons 'up-mouse-1 (cdr evt)) unread-command-events)
    (mouse-drag-track evt t)))
它关闭了菜单栏,但我并不需要它。
此外,它不能正确处理选择和滚动,但至少它能正确定位点。

谢谢,后天我将在访问该机器时尝试,并报告结果。测试结果:…a ESC[M SPC\300\256 6 ESC[M\300\256 6 C-g C-hl@Necto:Aha!听起来这可能是Emacs的一个功能,毕竟,有趣的字节序列可能是Putty完成的点击编码,显然Emacs错误地认为这些字节意味着您正在单击显示菜单栏的顶行。您可能希望M-x报告Emacs错误,以便对此代码有更多了解的ne可以尝试找出问题所在。也许它在更新版本的Emacs中得到了修复(不保证,但值得一试)。不确定为什么会被否决。这为我解决了同样的问题,在ssh会话中使用基于终端的Emacs。