avy-goto-line如何快速切换到avy-goto-word-1

M-g M-g 绑定了avy-goto-line

已按下M-g M-g的状态下,如何快速切换成avy-goto-word-1

如果直接绑定按键M-g M-g M-gavy-goto-word-1会报按键前缀冲突(其实avy的候选项就是几个字母,再按M-g没有啥冲突)

看有个avy-handler-function,能否改写这个函数,任意命令直接执行,而不是先按C-g取消?

自己糊了一个,凑合用,从avy-goto-line快速跳到avy-goto-word-1

  • M-g M-gavy-goto-line
  • M-g M-g M-gavy-goto-word-1
  • M-g M-g wavy-goto-word-1
(setq avy-handler-function
        (lambda (char)
          (if (memq char '(?\M-g ?w))
              (progn
                (call-interactively 'avy-goto-word-1)
                (throw 'done 'exit))
            (avy-handler-default char))))

我使用 consult-line 直接使用 M-g M-g。

随然是 consult-line 但是搜啥就跳转到相应的位置处,而不是行开头的位置。

所以没有使用 avy-goto-xxx。

consult-line不太常用,感觉它和isearch功能差不多嘛,是针对全buffer的过滤

应该是consult-goto-line吧?

consult-goto-line 和 consult-line 不一样。

consult-goto-line 是根据行号跳转,只能到行开头。consult-line 是根据搜索的字符跳转,会跳到搜的字符上。和 isearch 行为基本一致,就是带了预览。

avy-goto-line 对标 consult-goto-line

这个用general的general-key-dispatch就行