【问题标题】:emacs use highlight-symbol mode on mouse clickemacs 在鼠标点击时使用高亮符号模式
【发布时间】:2013-09-27 11:20:48
【问题描述】:

我正在尝试使用鼠标进行搜索,如 VIM "super *"\ shift-mouse1 搜索。

使用highlight-symbol 模式来获得(几乎)键盘搜索所需的行为,但我找不到对鼠标执行相同操作的方法。 我试过了:

(require 'highlight-symbol)
(global-set-key [(control f3)] 'highlight-symbol-at-point)// <- works for the keyboard
(global-set-key [(control shift mouse1)] 'highlight-symbol-at-point)

但是当我尝试使用 Ctrl-Shift-Mouse1 时,它不会搜索鼠标当前位置,而是搜索光标的当前位置。 有没有办法让我获得鼠标当前位置以供功能使用? highlight-symbol 使用 things-at-point,但我找不到类似的鼠标包。

【问题讨论】:

    标签: vim emacs mouse elisp dot-emacs


    【解决方案1】:

    这段代码可能会满足您的需求。请注意,您需要捕获事件,因此 (interactive "e"):

    (global-set-key [(control shift mouse-1)]
                    (lambda (event)
                      (interactive "e")
                      (save-excursion
                        (goto-char (posn-point (event-start event)))
                        (highlight-symbol-at-point))))
    

    另外,我必须使用 mouse-1 而不是 mouse1...ymmv。

    【讨论】:

    • 这很奇怪,但你是对的 - 当我将它附加到你创建的函数时,别名停止与 mouse1 一起工作。它之前确实有效...无论如何,您的解决方案运行良好。 tnx.
    • 然而,这是相当迟钝的,因为它会根据鼠标点击标记单词,但不会在突出显示的项目之间搜索,因为它们不在光标下......需要改进别名以定位光标在该点上。
    • 如果要将光标定位在该点,只需删除save-excursion即可。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-07-16
    • 2013-01-30
    • 2016-10-03
    • 1970-01-01
    • 1970-01-01
    • 2011-06-21
    • 1970-01-01
    相关资源
    最近更新 更多