求助模仿ACEM的右键快递查找功能

新手求助 ACME编辑器中一个我个人觉得非常好的功能就是右键单击当前字符会自动查询并定位下一个匹配字符,现这几天折腾EMACS,想实现这个功能,照搬前辈了代码,但有问题,请求帮助

 (defun my-search ()
  (interactive)
  (let ( $p1 $p2 )
    (if (use-region-p)
        (progn
          (setq $p1 (region-beginning))
          (setq $p2 (region-end)))
      (save-excursion
        (skip-chars-backward "-_A-Za-z0-9")
        (setq $p1 (point))
        (right-char)
        (skip-chars-forward "-_A-Za-z0-9")
        (setq $p2 (point))))
    (setq mark-active nil)
    (when (< $p1 (point))
      (goto-char $p1))
    (isearch-mode t)
    (isearch-yank-string (buffer-substring-no-properties $p1 $p2))))

(global-set-key [(mouse-3)]
                'my-search)

这是我照搬的代码,可以高度显示出匹配字符,但光标不会定位到下一个

一定要用鼠标吗?[`symbol-overlay](GitHub - wolray/symbol-overlay: Highlight symbols with keymap-enabled overlays) 默认用 `M-p`/`M-n`定位上/下一个匹配。绑到鼠标上试试。其实,我更喜欢用swiper,一目了然

symbol-overlay好复杂。 那看来这段我抄袭的代码不是再加几行代码就能实现向下定位的喽

symbol-overlay很好用,还自带重命名功能

干嘛要抄呢?直接用不就好了?

现在是正常用我发的这段代码,高亮匹配的字符是实现了,但光标不会跳转到下一下匹配字符上。 我想实现的是鼠标右击一个标记的字符串,自动高亮所有搜索到的相同字符串,并且光标自动跳转一个匹配项上,我再右键一次,再跳到更下一个匹配项目上。 ACME编辑器这样的,并且鼠标指针也会自动定位到下一个匹配上,非常好用,EMACS我不指望指针移动,但想实现光标移动

我天天都是idle-highlight-mode和consult-line爽得一批,不过高亮是临时的,要固定高亮用的embark-toggle-highlight其实就是调用的highlight-symbol-at-point