Emacs 中有什么方法支持拼音索引吗?

例如:平常查找文件的时候,如果文件中有中文的话,搜索相关文件可不可以用拼音来检索文件?

可以,在论坛里搜一下。

推荐 pyim

如果是想要拼音搜索文件名:上面列的 pinyinlib 和 pyim 都支持,可以参考 pyim readme 和补全框架搭配

如果是想要使用中文搜索文件内容,可以直接输入中文字符(其实文件名也可以)

借贴提问,怎么实现在 buffer 中,跳转到不同中文字符的位置?

avy + pinyinlib 这样算不算?根据中文拼音首字母跳转

1 个赞

算,我就是用这个方案,但可能配置没到位,暂时还没效果

我是用的 doom emacs,在 doom 中启用 evil 的话可以输入 g s 然后两个中文拼音首字母就可以跳转到对应的中文

1 个赞

非常感谢,就是我需要的,star 了

有一个问题,比如下面的场景中,单独检索 写作 ,单独检索 都没有问题,但是合在一起不知道为什么法字就没有高亮检索出来,如果用空格隔开也没问题。

ps. 我用的小鹤双拼

更新:又发现一个问题,要想检索 笔记 需要把两个一起打出来。

我也是这个方案,avy 相关配置如下,函数就是上边帖子里那个,不用啥额外配置就能直接用的。感觉可能是和你其他配置冲突了

(use-package avy
  :bind
  ("C-c f" . my/avy-goto-char-timer)
  :hook
  (after-init . avy-setup-default)
  :config
  ;; pinyinlib
  (use-package pinyinlib
    :demand t)
  (setq avy-all-windows nil
	avy-all-windows-alt t
	avy-background t
	avy-style 'pre)
  )

1 个赞

我先抄来配置看看

尴尬,我用的少,突然发现有个很严重的问题,rime-regexp-build-regexp-string只能返回 rime 第一页的候选项,然后导致了这个问题,感觉改起来好像有点点麻烦,先提了个issue cc @colawithsauce ,如果觉得比较影响还是先用 pyim 吧(或者直接输入中文)

Update: issue fixed 了

1 个赞

嗯嗯,试用了下 pyim,效果也不错,先用着 pyim 吧。

更新:为方便后面搜到这个帖子的用户,这里贴下 pyim 的解决方法。

pyim-readme

;;让 vertico, selectrum 等补全框架,通过 orderless 支持拼音搜索候选项功能。

(defun my-orderless-regexp (orig-func component)
  (let ((result (funcall orig-func component)))
    (pyim-cregexp-build result)))

(advice-add 'orderless-regexp :around #'my-orderless-regexp)
1 个赞