5.3. 码表输入法

fcitx支持用户自定义码表输入法。

系统的码表放置在prefix/share/fcitx/data/table/*.conf, 用户的码表和配置放置在~/.config/fcitx/table/*.conf

该文件用“[CodeTable]”来区分不同的码表。其它设置说明如下:

码表输入法提供了两种在线造词方法(词组最长为10个汉字):

  1. 在中文输入方式下按CTRL_8,则利用将刚刚输入的内容造词,默认为最近输入法两个字,可以用左右方向键的增加或减少词组中的字数。

  2. 自动组词:将需要造的词按单字连续输入后,再按它的组词规则连续输入编码,程序会提示用户这个新词。 如果此时按空格或它前面的序号则将这个新词输入到用户程序中,您可以设置这个新词是否进入词库。 如果不想录入该词,继续进行下一次输入即可(fcitx会记录最近2048个输入的汉字)。

如果想删除词库中的词,先让该词显示中输入条上,按CTRL_7,并按提示操作即可;或是当程序提示有该词组时,按CTRL_DEL删除。

如果想调整词库中词的顺序,按CTRL_6,并按提示操作即可。(如果调频设置为1或2,您可能看不到有什么变化)。

5.3.1. 制作码表

data目录下包括制造码表的工具:txt2mbmb2txt。 前者是将码表源文件转换为码表输入法所需的格式;后者是将码表文件转换为文本文件。码表源文件格式如下:

;fcitx 版本 0x03 码表文件
键码=abcdefghijklmnopqrstuvwxy
码长=4
规避字符=;iuv
拼音=@
拼音长度=12
[组词规则]
e2=p11+p12+p21+p22
e3=p11+p21+p31+p32
a4=p11+p21+p31+n11
[数据]
a 工
a 戈
a 或
a 其
@a 阿
@a 啊
@a 呵
			

1

键码:表示该码表输入法需要用的键;

2

码长:指该码表输入法最长码长;

3

规避字符:在象二笔这样的码表输入法中,某些字符如果出现在编码的第一个,表示特殊用途,虽然可以组成单字,但却不参与组词。如果有这样的字符,可以列在这个地方,以免自动造词出错;

4

拼音:以此字母开头的为拼音;

5

拼音长度:表示该码表中拼音的最长长度;

6

[组词规则]:表示自动组词的规则,如果没该标志,则不能在线造词;

组词规则的数目应该比码长小1。

等号左边为词组的汉字个数。其中e表示“等于”,a表示“大于等于”(只能有这两个设置)。

等号右边为规则,其中p指正序,n指逆序。如p11指第一个字的第一个编码,n11则是指最后一个字的第一个编码。

7

[数据]:该标志以下为该码表输入法的数据,按“编码<空格>对应的汉字”。这部分无需排序。

按上述格式制作好编码后,利用txt2mb将其转换为fcitx需要的格式:

./txt2mb {源文件} {目标文件}

然后将目标文件复制到~/.config/fcitx/table中, 并在~/.config/fcitx/table/中建立对应conf文件, 然后在中文输入状态下按CTRL_5重新读入配置文件即可。

如果希望将已经制作好的码表文件转换为文本文件,可以:

./mb2txt {码表文件} [ > 文本文件]

生成的文本文件将形如上述码表源文件的格式。

在码表输入法模式下,只输入单个“拼音键”指定的字符可以重复上次的录入。

5.3.2. 反查拼音

如果不知道某个汉字的读音,可以先用码表输入法录入这个字,然后按反查拼音的热键(默认为CTRL_ALT_E),就可以查到该字的读音。