[ANN] `ace-pinyin` 和 `evil-find-char-pinyin` 最近更新

ace-pinyin

  1. 由于 avy 已经基本成为主流,所以 ace-pinyin 已经默认采用 avy,因此使用 avy 的同学不需要 (setq ace-pinyin-use-avy t) 了。过段时间我打算去掉 ace-jump-mode 的依赖,变为可选(建议?)。
  2. 最近 ace-pinyin 添加了对已有的所有的 avy 字(词)跳转命令的支持(共 8 个),不仅限于 avy-goto-char,而是包括了各种 avy-goto-char/word/subword-* 命令。

evil-find-char-pinyin

这是最近新的一个包,和 ace-pinyin 类似,使 evil 的 f/F/t/T 支持中文首字母搜索,以及可选的 evil-snipe 支持。 evil-snipe 支持两个字母的搜索,因此 evil-find-char-pinyin 使 evil-snipe 可以用拼音首字母搜索连续的两个中文。

pinyinlib

最早这些首字母转化为中文的方法来源于 Chen Binfind-by-pinyin-dired。由于 ace-pinyinevil-find-char-pinyin 都用了类似的实现(即一个首字母到中文的表和一个转化函数),我把这些单独做成一个很简单的包,使 ace-pinyinevil-find-char-pinyin 都依赖于这个包,如果后来还有同学有类似的想法做一些新的包,也可以直接依赖于这个包而不需要再拷贝粘贴了。

pinyinlib 支持:

  1. 首字母到简体/繁体汉字转化
  2. 英文标点到中文标点转化

所以 ace-pinyinevil-find-char-pinyin 两个包也都支持简体/繁体和用英文标点搜索。(注:繁体支持需要设定对应的选项。)

find-by-pinyin-diredpinyin-search @xuchunyang 和其他的新的类似的包可以基于 pinyinlib,如果有新的关于拼音/中文的函数,可以直接在 GitHub 提 issue/PR,加入这个包,这样可以使得资源更集中。最后这个包变成怎样我也没想法,可能像现在这样非常简单,或者变得复杂。

最后这个 “Packages 测评” 和 “创意(广告)区” 的区别是?最初我感觉是关于包的说明,写完又有点像广告/创意?

6 个赞

哈哈,pinyin处理,当前做的功能最多,最复杂的是 chinese-pyim, 只不过大家都觉得它是一个输入法,没有注意到这个事情

所以是不是你可以考虑将它分成几个包?比如放一部分相关的功能到 pinyinlib 中? chinese-pyim 可以做所有可能的拼音到汉字的转化,但是 ace-pinyin 等目前几个类似的包本身都不复杂,依赖于复杂的 chinese-pyim 并不是好的选择。不如把共有的部分抽取出来,拼音相关的包都可以引用。

当然我不太清楚 chinese-pyim 的实现,不知道我说的是否实际?

EDIT: @tumashu 如果能将前端显示和后端查词分开的话,假设我想写个五笔的输入法,仅将 输入 -> 候选词 列表这个模块更换就可以了。不知道目前 chinese-pyim 可以实现吗?这样就有一个 chinese-wbim 了。(写完这段上 melpa 看了看,发现有一个 chinese-wbim,不清楚和 chinese-pyim 啥关系。。。)

好东西,没有这个搜索汉字太麻烦了。

Done,pinyin-search 现在用上了 pinyinlib

哇原来 cute-jumper 也在这里 :laughing:

写在Packages 测评里是没有问题的,感觉创意(广告)区确实有点尴尬,不如像v站一样改成纯创意区好了

@xcodebuild 你不如直接从 eim 的五笔输入法入手做,chinese-wbim 其实就是 eim 的一个 fork,本来那个同学准备继续维护的,可惜就没有后来了,有兴趣的话你你可以联系一下它

因为 chinese-pyim 的许多工具都是专门为输入法而写的,虽然功能强大,但未必适用与其他场合,算了,我就不折腾了。。。。

是不是诶特错人了=。=

sorry …

chinese-wbim 就是我 fork 的,不过我对输入法开发了解不多,再加上平时开发工作也比较忙,就没有弄了,感兴趣的同学可以继续维护。不过 chinese-wbim 有一些bug 容易导致 Emacs 卡死。。。

赞!好迅速!

@tumashu 之前不太清楚 chinese-pyim 的实现,不知道是不是容易自定义输入法后端,所以顺便问问,其实我没有特别的兴趣实现五笔输入法,而且 @zilongshanren 已经发现很多坑了。。 。如果 chinese-pyim 前后端分开的话,实现一个新的输入法会容易很多。

当年,我从 eim fork 代码, 删除了其他不需要的东西,只保留 pinyin 相关的代码,目的就是专心的做一个拼音输入法,而不是做一个框架,chinese-pyim 将来只会继续优化拼音输入法,没有计划支持五笔等其他输入方式, 你需要输入法框架的话,直接用 eim 就可以了。。。。