马黑黑 发表于 2021-8-17 07:38

影子输入法如何去除不需要的双拼

严格来讲,我们不是真正去删除不需要的双拼方案,而是在 sc/ 输入命令得出的候选“词”里过滤掉不需要的双拼方案,亦即通过操作达到去除 sc/ 词条候选框里不需要的双拼条目的目的。

双拼使用者一般只需要一种方案,而影子为了兼顾所有的方案,通过映射算法将诸多双拼方案内置其中。个人用户为提高输入法切换的简洁度,是有必要去除多余的双拼候选条目。

经分析,双拼以外的输入法方案,只要在词库管理界面中删除对应的输入法库,便能删除该输入法(当然还有残留,主要是Data目录下的码表文件,将之也删除掉就是真正彻底删除了该输入法)。但双拼不是独立的输入法,而是拼音输入法方案的分支,与全拼共用一个词库,并不能在词库管理界面中找到任何双拼方案的词库。所以要去除 sc/ 词条多余的双拼候选,需要另辟蹊径。下面说一下操作过程。

在 Lib 目录里,有一个名为 srf_init.ahk 的文件,里面就有我们动“手术刀”的地方。先启动合适的文本编辑器(手头没有的话用Windows自带的记事本也行),接着在资源管理器里进入影子输入法的 Lib 目录,把 srf_init.ahk 文件拖到文本编辑器的编辑窗口,这就打开了 srf_init.ahk 文件。接下来通过以“双拼”作关键词可以查找到如下整行内容:

      pinyinec:={pinyin:"全拼",dnsp:"大牛双拼",xhsp:"小鹤双拼",zrmsp:"自然码双拼",abcsp:"ABC双拼",sgsp:"搜狗双拼",wrsp:"微软双拼",jjsp:"加加双拼", xysp: "小月双拼"}, pinyince:=[], customspjm:=[]

动“手术刀”之前分析一下诸位双拼“大牛”在代码流中的存放规律:用大括号将所有的拼音输入方案归拢起来,各方案之间用逗号间隔开来;每一个方案单元都有两部分组成,一是英文名称,二是中文名称,中间用冒号隔开。

OK,现在开始“开刀”:将不需要的双拼输入法单元一一删除,注意删除时要连同其后的逗号一块删掉,“手术”后整行代码长成如下苗条的样子:

      pinyinec:={pinyin:"全拼",xhsp:"小鹤双拼"}, pinyince:=[], customspjm:=[]

保存,重启输入法,大功告成。


红影 发表于 2021-8-17 14:36

“但双拼不是独立的输入法,而是拼音输入法方案的分支,与全拼共用一个词库,并不能在词库管理界面中找到任何双拼方案的词库。”

原来双拼只是组词规则,和词库无关。不知移除双拼后,输入法的文件大小是否会变小。

红影 发表于 2021-8-17 14:38

“双拼使用者一般只需要一种方案,而影子为了兼顾所有的方案,”——原来去除还可以有针对地移除。

这个帖子的讲解很细致,给黑黑点赞{:4_187:}

马黑黑 发表于 2021-8-17 16:34

红影 发表于 2021-8-17 14:38
“双拼使用者一般只需要一种方案,而影子为了兼顾所有的方案,”——原来去除还可以有针对地移除。

这个 ...

所谓高度定制,应该做的机制。影子输入法这个功能的设置虽不直观,但有接口。

马黑黑 发表于 2021-8-17 16:40

红影 发表于 2021-8-17 14:36
“但双拼不是独立的输入法,而是拼音输入法方案的分支,与全拼共用一个词库,并不能在词库管理界面中找到任 ...

不会变小。词库并没有减量。
双拼集成在程序代码内部,是一个映射键盘的算法而已,但与组词无关。举例来说,我们输入“凉”字:

全拼:liang
双拼:ll

这里,双拼的第一个 l 键是“凉”的声母,第二个 l 键是“凉字的韵母” iang 。程序内部已将 l键 对韵母的映射算准了,再从字库里检字。

红影 发表于 2021-8-17 16:51

马黑黑 发表于 2021-8-17 16:40
不会变小。词库并没有减量。
双拼集成在程序代码内部,是一个映射键盘的算法而已,但与组词无关。举例来 ...

原来映射算法不占大小的,学习了{:4_187:}

红影 发表于 2021-8-17 16:53

马黑黑 发表于 2021-8-17 16:34
所谓高度定制,应该做的机制。影子输入法这个功能的设置虽不直观,但有接口。

即使埋藏得再深,黑黑都有办法挖出来{:5_116:}

马黑黑 发表于 2021-8-17 16:55

红影 发表于 2021-8-17 16:53
即使埋藏得再深,黑黑都有办法挖出来

花点时间,肤浅一点的功能可以弄弄,深一点的就不好说了

马黑黑 发表于 2021-8-17 16:56

红影 发表于 2021-8-17 16:51
原来映射算法不占大小的,学习了

不是不占,但不多的(一段代码)

加林森 发表于 2021-8-17 17:02

有点复杂了啊。
会不会把拼音搞乱了啊?
看起来容易,把这些都组合起来就有点麻烦了哦。
有点晕乎乎的。{:5_153:}

马黑黑 发表于 2021-8-17 19:08

加林森 发表于 2021-8-17 17:02
有点复杂了啊。
会不会把拼音搞乱了啊?
看起来容易,把这些都组合起来就有点麻烦了哦。


这个和你无关y呀。你用的是手心。

红影 发表于 2021-8-17 20:09

马黑黑 发表于 2021-8-17 16:55
花点时间,肤浅一点的功能可以弄弄,深一点的就不好说了

其实也不用弄太深,就像手机,很多功能我们不注意,也同样能使用手机。

红影 发表于 2021-8-17 20:09

马黑黑 发表于 2021-8-17 16:56
不是不占,但不多的(一段代码)

是的,代码就算很长,一般文件都不大的。

马黑黑 发表于 2021-8-17 20:34

红影 发表于 2021-8-17 20:09
是的,代码就算很长,一般文件都不大的。

代码是属于文本的东东

红影 发表于 2021-8-17 20:47

马黑黑 发表于 2021-8-17 20:34
代码是属于文本的东东

影子输入法很聪明,通过影射整合了功能,又没增加自身负担。

马黑黑 发表于 2021-8-17 20:50

红影 发表于 2021-8-17 20:47
影子输入法很聪明,通过影射整合了功能,又没增加自身负担。

所有支持双拼的输入法都是这么做的

小辣椒 发表于 2021-8-17 20:50

马黑黑 发表于 2021-8-17 20:34
代码是属于文本的东东
小黑,昨天我又晕死,用你那个软件记事本导出的UTF-8上传的脚本代码还是文字出现乱码,我重复几次UTF-8 还是不成功,是不是可以重复编辑为UTF-8 ?我发现重复编辑出来文件会大一点的

马黑黑 发表于 2021-8-17 20:55

小辣椒 发表于 2021-8-17 20:50
小黑,昨天我又晕死,用你那个软件记事本导出的UTF-8上传的脚本代码还是文字出现乱码,我重复几次UTF-8 ...

UTF-8分两种:一种带签名(有bom),一种不带签名(无bom)。这两种,虽同源但标记不同,网页规范了哪种种编码,就用哪种。有这个标志的,一般用不带签名的:

<meta charset="utf-8" />

小辣椒 发表于 2021-8-17 21:09

马黑黑 发表于 2021-8-17 20:55
UTF-8分两种:一种带签名(有bom),一种不带签名(无bom)。这两种,虽同源但标记不同,网页规范了哪种 ...

我H5播放器只能是UTF-8,否则出来文字会乱码,但我明明另存为UTF-8出来上传后文字还是乱码

马黑黑 发表于 2021-8-17 21:10

小辣椒 发表于 2021-8-17 21:09
我H5播放器只能是UTF-8,否则出来文字会乱码,但我明明另存为UTF-8出来上传后文字还是乱码
看清楚,有两个utf-8
页: [1] 2 3 4 5 6
查看完整版本: 影子输入法如何去除不需要的双拼