如何让 vertico 支持拼音搜索?

如题,有没有什么现成的轮子或者说修改的思路?我刚刚看了一下vertico的源码,没有看明白到底需要advice哪个函数才能实现这个功能。

1 个赞

看pyim的readme的最后三段

2 个赞

我用的pinyinlib+orderless

(defun completion--regex-pinyin (str)
  (orderless-regexp (pinyinlib-build-regexp-string str)))
(add-to-list 'orderless-matching-styles 'completion--regex-pinyin)

14 个赞

这个好,不用advice

  (defun orderless-regexp-pinyin (str)
    (setf (car str) (pinyinlib-build-regexp-string (car str)))
    str)
  (advice-add 'orderless-regexp :filter-args #'orderless-regexp-pinyin)

改了一个advice的版本,我更喜欢advice。。

1 个赞

你好,我正在使用您开发的package pyim,十分好用,非常感谢你的贡献。偶然看到这个贴子,发现原来还能首字母匹配中文。

只是碰到了一个问题,借楼请教一下:我是一个新手,在使用 Doom Emacs 其中开启了 ivy 的 prescient 模式,使用文档中的配置不能使得拼音匹配生效。在社区也看到了别人的配置,但是大概是使用了重构前的API,我这边不能 work:地址 https://emacs-china.org/t/topic/6069/24?u=bluepadge

请问该怎么配置,能够让拼音匹配在prescient 模式下生效呢?

再次感谢你贡献这么好用的中文输入了,让我能在 WSL 中也能使用中文输入法。

1 个赞

:+1:这个太好用了,不用切换到中文输入法就能快速搜索中文。在 vertico 下配合 consult-line 使用,isearch 就可以少用了 。

1 个赞

笔记多了想要搜索, deft 没有找到拼音搜索方法,就也做了一个


(after! dired
  (setq deft-incremental-search nil)
  (defun deft-search-forward (str)
    "Function to use when matching files against filter strings STR.
This function calls `search-forward' when `deft-incremental-search'
is non-nil and `re-search-forward' otherwise."
    (let ((case-fold-search deft-case-fold-search))
      (if deft-incremental-search
          (search-forward str nil t)
        (re-search-forward (pinyinlib-build-regexp-string str) nil t)))))
1 个赞

这个太好用了吧👍