pinyinlib.el icon indicating copy to clipboard operation
pinyinlib.el copied to clipboard

是否可以增加对双拼的支持?

Open AmaiKinono opened this issue 7 years ago • 5 comments

在下是小鹤双拼使用者。在使用 ace-pinyinfind-by-pinyin-dired 等插件时,碰上 zh、ch、sh 开头的字,总是习惯性按 viu。倒也不是多大个问题,不过确实有点不方便。

一些其他信息:

  1. 据我所知,双拼输入法中声母只有 zh、ch、sh 有问题,其他都和全拼一样。
  2. 不同双拼方案对韵母字的处理不同。基本有三种(以下假设韵母键位 a - a、an - j、ang - h):
  • 固定零声母。比如微软双拼使用 o、韵母字都以 o 开始,然后韵母照打:啊 - oa、安 - oj、昂 - oh。
  • 非固定零声母。以全拼的开头作为零声母,韵母照打:啊 - aa、安 - aj、昂 - ah。
  • 非固定零声母。同上,但双韵母字和全拼完全一样:啊 - aa、安 - an、昂 - ah。

两种非固定零声母方案,双拼编码的首字母和全拼一样;对固定零声母方案,我认为统一用 o 来匹配韵母字也不好,可以用韵母的键位来匹配。因此在下的想法基本上是这样:

  1. 提供双拼方案选择
  2. 对非固定零声母方案的双拼,用 zh、ch、sh 的键位匹配以它们开头的字,其余和全拼一样
  3. 对固定零声母方案的双拼,用 zh、ch、sh 的键位匹配以它们开头的字,用韵母的键位匹配以韵母开头的字。

更进一步地,是否可以不把汉字表硬编码在插件里,而是调用一个外部的 “首字母 - 汉字” 数据文件(允许用户指定路径)。这样无论用户使用什么输入法,只要他手里有码表,就能捣鼓出一个这样的数据文件来用。

谢谢您。

AmaiKinono avatar Dec 31 '17 13:12 AmaiKinono

多谢建议。我没用过双拼,具体的规则不太熟悉。有一个问题,全拼里两个字如果对应到一样的首字母,是否双拼中也是一样对应到某个一样的字母?

cute-jumper avatar Jan 03 '18 20:01 cute-jumper

不是的(这正是麻烦的地方)。

  1. 如果一个字是声母打头的
    • zh、ch、sh 在双拼中会被放到韵母键上,比如小鹤双拼就放到了 viu 上。举例来说,“中” 和 “宗” 在全拼里都是 “z” 打头,但(小鹤)双拼中一个是 “v”(zh),一个是 “z”。
    • 其他的声母都和全拼一样。
  2. 如果一个字是韵母字
    • 对于非固定零声母方案的双拼(比如小鹤双拼),都和全拼一样。
    • 对于固定零声母方案的双拼(比如微软双拼),打头是固定的字母(比如全是 “o”),但我觉得 “凡是韵母字都用 o 来匹配” 似乎也不太好,所以:
      • 我认为可以用韵母的键位匹配韵母开头的字。比如说 “an” 在 j 键上的话,就用 “j” 而不用 “o” 来匹配 “安”。这种对用户来说应该比较好适应。
      • 简单一点的话就韵母字还以全拼的首字母匹配,这样两种零声母方案也就统一了,然后只需要处理 zh、ch、sh 的问题。

AmaiKinono avatar Jan 04 '18 18:01 AmaiKinono

多谢解释!

对于非固定零声母方案的双拼(比如小鹤双拼),都和全拼一样

简单一点的话就韵母字还以全拼的首字母匹配,这样两种零声母方案也就统一了,然后只需要处理 zh、ch、sh 的问题。

我觉得这个也许是比较简单的,只要把用户输入的 viu转化到zcs就行。基本上不需要什么大改。

cute-jumper avatar Jan 05 '18 18:01 cute-jumper

我魔改了个五笔的版本: https://emacs-china.org/t/ace-pinyin/15926 ,用的Python脚本在贴子里给出来了

colawithsauce avatar Jun 07 '22 07:06 colawithsauce

我也再找这类的方案, 不清楚pyim能否实现,卡在librime编译了😭。 如果有一个轻量级的插件能支持也挺好。

jakara avatar Jul 03 '23 04:07 jakara