My favorites | Sign in
Project Home Downloads Wiki Issues Source
Search
for
XingMaUserGuide  

Featured, 用户手册, XingMa
Updated Feb 4, 2010 by acev...@gmail.com

形码输入法平台简介

在SCIM的平台上,作为形码输入的IME,大家首先会想到的就是scim-tables。然而scim-tables在自定义词组方面,却十分不便,同时也没有拼音的反查功能。 XingMa就是从以上出发,着眼于提高用户体验的目标开始的。

主要功能及优点

快速的输入速度

同scim-python的PinYin一样,XingMa使用了SQLite作为码表的数据库,并针对形码的特点进行了查询的优化,去除搜索上不必要的overhead,使得每次按键时得输入法的反应速度都非常快。同时,和一般用户的习惯相同,XingMa用Space键作为提交,在功能拓展的同时,用户的录入速度并不会受到降低。

方便用户的自定义词组

scim-tables的情况

在scim-tables下,当用户要加入自定义词组时,需要:

  1. 先打完词组,
  2. <control>
    +A进入词条添加模式
  3. 再把词组的编码输进去

然而,用户并不一定能准确地录入词组的编码,同时也太麻烦了。

XingMa的情况

  1. 在正常的中文(实际上是XingMa模式下)输入一个字或词的编码,然后按左边的shift_L键(此时,你可以看到字或词出现在了输入法的框中),同时如果输入框中已经有了两个或两个以上的字,就会显示这个词的编码:
  2. 再输入一个字或词的编码,如果已经是你要的词了,直接按Space键把你输入的词组提交到编辑的文本中,此时XingMa会自动为你判断是否是词库中没有的新词,如果是新词的话就会为您加入到用户词库中。
  3. 如果你还没输完,不要按 Space,按Shift_L再重复2即可; 如果你想看看这个词组的编码,那输完后不要马上按Space,而是按左边的Shift_L,你就可以在输入法的框中看到这个词组的编码。方便吧:)

  • 当你发现不小心输入了一个错的词组,没事,当下次你看到它的时候用Alt加1~9(其在候选框中的位置)就可以把它从你的自定义词库中去掉。

拼音反查

相信用形码的朋友们一定会有这样的经验,哪一天突然有个字想不起来怎么写,或是想不起来怎么拆。此时如果输入法能让你用拼音输入这个字,同时又把编码提出来就爽了。 因此XingMa加入了这个功能来方便用户的学习和使用。 只要在"中文模式下"按 Shift_R 键就可以在形码和单字拼音模式间切换。

形码模式,显示绿色的球:

拼音模式,显示粉红色的问号:

如果你只是想用拼音输入你忘了的字,那么输完拼音后直接

<space>
即可马上把字提交到编辑的文本中。如果你想知道这个字的编码,那就按<左Shift>键,此时你可以看到这个字被放到了输入法的框中,同时在输入法中也可看到这个字的编码,编码从最短的简码开始,一列排开.

使用说明

  • Space键: 把字词提交到编辑的文本中
  • Shift_L : 在还没用输入法输入时为切换中英文模式; 在输入中为把第一个候选词提交到预编辑的文本中为。
  • Shift_R : 在中文模式(非英文模式)下,切换形码/拼音模式;假如挂载的具体输入法不支持拼音反查,则相当于Shift_L。
  • Arrow Left 和 Arrow Right: 在预编辑文本中挨个字移动光标。
  • Backspace : 去掉一个输入的码键或去掉预编辑文本中光标前的一个字。
  • Delete : 删除预编辑文本中光标后的一个字;
  • Control + Arrow Left : 把光标移到预编辑文本中当前词的词首;
  • Control + Arrow Right : 把光标移到预编辑文本中当前词的词末;
  • Control + Backspace : 预编辑文本中,从光标位置开始删除到当前词的词首;
  • Control + Delete : 预编辑文本中,从光标位置开始删除到当前词的词末;
  • Arrow Down : 下一个候选词;
  • Arrow Up : 上一个候选词;
  • Return : 当没有向预编辑文本中提交字词时,把键入的字母以英文提交到应用程序的编辑文本中; 否则,就相当于重置输入法(比如你输错了词时);
  • Esc : 重置输入法;
  • Num 1 ~ Num 9 : 从候选字词中选择相应的,并提交到应用程序的编辑文本中(和别的输入法相当);
  • Control + ( Num 1 ~ Num 9 ): 从候选字词中选择相应的,但不提交到应用程序,而是提交到预编辑文本中 (准备加入自定义词组或拼音反查时)
  • Alt + ( Num1 ~ Num 9) : 把候选字词中相应的位置的自定义词组从用户词库中去掉,(用户自定义的词组是紫色的)。
  • 减号 / 加号 : 如果不充当输入键时,对应于Page Up / Page Down

定制码表

用户可以在scim-tables已有的码表中加入一些额外的参数,就可以用它生成XingMa用的数据库文件了。

码表的格式

  • 必须为UTF-8编码的txt文本,或该txt文本压缩的bz2文件(发布用的)。
  • 注释为 ### 开头的行,这和scim-tables的格式相同。所有注释行和空白行都会被忽略。
  • 输入法的属性设置行格式形如: ATTR = VAL, 其中ATTR为英文的属性名,VAL为其值,UTF-8字符(当然包括数字)。ATTR和VAL不区分大小写。
  • 有效的属性如下:

'name' 输入法的英文名称
'name.zh_cn' 输入法zh_CN下的名称
'name.zh_hk' 輸入法zh_HK下的名称
'name.zh_tw'輸入法zh_TW下的名称
'author' 码表的作者
'uuid' 输入法的uuid值
'serial_number'码表的编号
'icon' 输入法图标的路径
'credit' 码表的协议,如GPL
'languages' 支持的语言
'valid_input_chars' 有效的按键,如'abcdefghijklmnopqrstuvwxyz'。
'max_key_length' 输入法的最大键长
'status_prompt' 和英文状态对应的形码状态的显示。
'def_full_width_punct' 是否默认为全角标点,默认为'TRUE'。
'def_full_width_letter''是否默认为全角字符,默认为FALSE'。
'user_can_define_phrase' 支持用户自定义词组吗?默认为'TRUE',不过单字输入法应设为'False'。
'pinyin_mode'支持拼音反查吗?默认为'TRUE'。
'rules' 构词的规则,如'ce2:p11+p12+p21+p22;ce3:p11+p21+p22+p31;ca4:p11+p21+p31+p41'

ce2 意为词长等于2(ci equals 2),ca4为词长大于等于4的(ci aboves 4), 显然如果4个字以上的词有一个规则,那你必然要有词长为2和3的规则。
  • 一般词条行的格式为: aaa\t字词\t词频 \n
  • 如果输入法构词码和单字的全码不一致的话需要加入构词码,否则将会用单字的全码构词而出错,如郑码就是这种情况。构词码行的格式为: 字\taa\n

生成数据库文件

当你准备好了码表后,你就可以用XingMa目录下的XMCreateDB.py来生成XingMa能使用的数据库文件了,假如我们要用当前目录下的码表 xingma-test.abc.txt来生成:

python /usr/share/scim-python/engine/XingMa/XMCreateDB.py  -s xingma-test.abc.txt

此时XMCreateDB.py就会读取你的码表,并生成文件名为xingma-test.db的数据库文件。 当然,你可以用命令行参数 -h 看看XMCreateDB.py能使用什么参数。 之后你只要把xingma-test.db复制到 /usr/share/scim-python/engine/XingMa/tables 下,重启scim(可能需要你退出X,关闭gdm/kdm/xdm,清空 /tmp/,重命名或删除~/.scim,再启动X)就可以看到你添加的输入法了。

如何反馈意见?

  • 在scim-python的讨论组发信讨论。
  • 在issue列表里创建新的issue
Comment by know...@gmail.com, Aug 22, 2009

很不错的输入法,可惜我不用linux


Sign in to add a comment
Powered by Google Project Hosting