小小输入法入门指南

yong lin 2.5.0

小小输入法入门指南

http://yong.dgod.net/

◆码表格式和设置

码表文件应该保存为gb18030的,编码长度最大63,词最长255字节,单行最长4094字节。
#号是码表的注释符号。
码表由码表头和数据部分组成,码表表头定义了码表在输入法中的行为表现,数据部分定义了真正的内容。
数据部分的格式由行组成,每一行是“
编码+空格+字词+...”。
在设置码表过程中,用不到的功能不用设,程序会采用默认设置,只有当你觉得默认设置不够用时,再进行改变。

示例

name=码表
key=abcdefghijklmnopqrstuvwxyz;
len=4
dicts=mb/1.txt mb/2.txt
wildcard=z
[data]
a 工
aa 式
aaa 工
aaaa 工 允许多个
aaaa 允许多行
……

所有的表头项解释:

name 码表的名字。
key
定义码表用到的按键,最多60个。

key0 码表只在第一个编码用到的按键,除非有按键冲突,否则不要设置该项。
len 定义编码的长度,也就是最大码长。
push 停止键,碰到此键如果候选项唯一且无后续编码则自动上屏,最多9个。
pull 引导键,以此键引导的编码在候选唯一且无后续编码时自动上屏,最多9个,如果要所有编码都起作用,可设置*键。
match 设为1则表示精确匹配。
wildcard 万能键设置。
dwf disable wildcard at first的缩写,设为1在第一码不应用万能键。
english 设为1表示码表是英语码表,具体格式可参考自带的英语输入法。
simple 设为1表示使用出简不出全功能,设为2表示重码时有简码字隐藏,设为3表示重码时简码字后置。
compact 压缩显示模式,设为1表示一级只显示一简和一级带标点简码的字词,字不重复显示简码,只在空码或全码显示词。 设为2表示只提示下一级词,其他和设为1一样。
yong 设为1表示是永码输入法。
pinyin 设为1表示是类拼音的输入法,具体行为可参考自带的拼音输入法。
split 2-7,在作为拼音输入法时,表明基本长度单位,可不设,全拼不应该设置。
hint 设为0表示,这个码表不需要编码提示的功能而不管配置文件中的设置如何。
auto_clear 设为1表示空码的时候自动清空输入 ,>1表示到这个码长的时候才自动清空,如果auto_clear=len+1,则用最后一个编码继续输入。
auto_move 设为1表示启用调频功能,配置文件中的设置优先。
nomove 指定不参与自动调频的编码开始部分,例如nomove=iz,则iz开始编码的词不参与自动调频。
nsort 设为1表示不对码表进行排序,用于王林快码。
sloop 设为n则自动对前n个候选进行简码处理,用于王林快码。
assist 指定辅助码表,格式是“assist=引导键+空格+辅助码表”。
指定辅助码(间接辅助),格式是“
assist=辅助码表+空格+编码中辅助码起始位置”。
dicts 指定分词库,词库间用空格隔开,参见示例中
的设置 。现在最多支持10个分词库,分词库允许设置目录,格式是“dicts=词库(或目录)+空格+词库(或目录)……”。
user 指定码表对应的用户码表,不设则使用默认的user.txt
commit 上屏设置,格式是“commit=全码不自动上屏 空码自动上屏码长 空码时上屏的码长”。
skip 造词时取编码,跳过这里指定编码开始的编码字词。
bihua 指定笔画输入法中对横竖撇点折的对应编码。
code_ 指定造词时的规则 。

造词设置:
code_几字词规则=造词码+...
和其他的输入法类似,
e表示等于,a表示大于等于,如e2表示二字词的规则
造词码设置,和其他输入法相同的,
p表示顺着数的编码,n表示倒着数的编码
p11表示第一个字的第一个编码,n11表示最后一个字的第一个编码

码表输入法造词规则允许编入最后一码,如p2-1表示第二个字的最后一码
和其他输入法不一样的造词码可以单独指定一个字符作为编码的一部分,例如
code_e3=p11+p21+p31+'
'作为第四个编码强制指定给三字词了,这样类似自然码风格的三字词就也能造了
还有一个特殊的
.号,表示所有的意思,例如
p..表示所有字的所有编码全部参与造词,比如拼音输入法,就进行了这样的设置

码表的特殊编码
$$ $
$_ 空格

$/ 换行
$ENGLISH 进入英文输入状态
$YYYY0 年,如二〇〇八
$YYYY 年,如二零零八
$yyyy 年,如2008
$MON 月,汉字
$mon0 月,数字,如02
$mon 月,数字,如2
$DAY 日,汉字
$day0 日,数字,如02
$day 日,数字,如2
$HOUR 小时,汉字
$hour 小时,数字,如2
$hour0 小时,数字,如02
$MIN 分钟,汉字
$min 分钟,数字
$SEC 秒,汉字
$sec 秒,数字
$WEEK 星期几,汉字
$week 星期几,数字
$RIQI 农历日期
$| 光标定位
$LAST 上一次的输出
$SPACE 码表中唯一候选词最后添加$SPACE,则直接上屏


发送文件
$FILE(file.ext)
支持发送文本文件和图片,文本文件必须是gb18030格式,且大小小于
4KB,图片的话在Windows上必须是bmp图片。使用方法,如:$[test1]$FILE(1.txt) 又如:$[test2]$FILE(1.bmp)
 

调整显示
$[显示的内容]输出的内容


码表能模拟的按键
ENTERBACKSPACEDELHOMELEFTUPDOWNRIGHTPAGEUPPAGEDOWNEND

$SPACE特殊用法
在只有一个字词的编码项中,在字词最后加入
$SPACE,可以打到这个字词时,直接让字词自动上屏,同时支持码表和拼音类输入法。

 

常用字翻转功能
输入法中,默认的,gb2312范围内的字为常用字,其他的字是非常用字,当这个范围不能满足需求的时候,那么常用字翻转功能可能就对你有用了。这里我们引入了一个特殊的符号
~,举例
a
~
原来“啊”是常用字,这样一设置,进行了翻转,就不是常用字了
jiong
~
囧字,现在很常见,你又是一个紧跟潮流的人,那么翻转一下,这个gbk汉字也成了常用字了

造词码设置
造词的时候,码表中一个字可能有多个编码,而其中可能只有一个可以用来造词,或者说比较适合造词,这时候你就要设置一下告诉输入法哪个编码更可见人。比如拼音中“的”字有de,di的音,在码表中加一行
^de 的
则以后造词,就都会选取de这个编码了。

配置文件中可以进行的调整
配置文件的段可有限的对码表的行为进行调整,在没有指明段的情况下,都是在
[table]下面的。
[IM]->auto_move 设置后优先于码表中的设置
[table]->adict 设为1则把辅助码表也作为分词库加载

[table]->wildcard 该设置会优先于码表中的wildcard的设置
[table]->zi_mode  设为1就是纯的单字模式,无法和正常模式切换
         设为2是默认正常模式,能和单字模式互相切换
         设为3
是默认单字模式,能和正常模式切换

[table]->edit 设置修改码表的编辑器,修改之后输入法会立刻重新加载码表

[xxxx]->auto_clear 设置后优先于码表中的设置 ,auto_clear=全码长+1且空码时,留最后一码用于后续输入
[xxxx]->auto_english 设为1则在当前码长<=len空码时自动变成英语模式 ,设为2时 则总是在空码时进入英文模式
[xxxx]->dicts 该设置会优先于码表中的dicts的设置

[xxxx]->quick 另外一个辅助码表,不会显示编码提示,格式同辅助码表设置

[xxxx]->pin 固顶词库,格式同用户词库(如:{0}yslv 镕),里面的词不能删除,不能移动

[xxxx]->skin=skin/????  输入法单独自定义皮肤

[xxxx]->tip_exist 连续单字输入时,如果碰到能成词的,就提示。
[xxxx]->tip_simple 在直接输入单字时,如果碰到简码码存在,就提示,这个值的大小代表识别前几个候选作为简码。

[xxxx]->auto_phrase 自动造词设置,只对普通码表输入法有效,码表中必须有造词规则,仅当连续输入单字时有效。格式为auto_phrase=2,4,0。前两个参数表示只自动造2-4字的词,最大允许9字。第三个参数表示在用户以正确编码输入这个词以后,是否保存到用户词库。

单字模式切换快捷键设置是[key]->zi_switch=',仅在输入编码之后再输入这个键才能生效。

码表对其他的字符编码的支持
主码表支持
utf8,在码表的第一行加入
encode=UTF-8

 

用户词库格式,只能为gb18030,一行一条,格式如:
{0}aaaa 你好
其中
0表示位置在第一个,其他类比。{-}表示删除这个词
用户词库应该是程序自动生成的,以上说明仅供确实有特殊用途的人参考。

 

在线表头设置工具:http://yong.dgod.net/edit/mb.html

◆码表头commit参数说明

码表头commit参数说明
码表头的commit是用来作上屏设置的
这是帮助文档中的说明
#上屏设置:全码不自动上屏 空码自动上屏码长 空码时上屏的码长
commit=0 0 0


全码不自动上屏:指全码时,候选项唯一且无后续编码的时候,是否自动上屏,
默认值
0是自动上屏的(如为四码输入法时就=4),设为1则不自动上屏,设为2则全码后无重码自动上屏(如为四码输入法时就>=4)
空码自动上屏码长:指碰到空码的时候,在小于该码长的时候 是否上屏前码的候选
默认值
0,表示只要碰到空码就自动上屏(4码输入法一般设4)
空码时上屏的码长:指碰到空码的时候,上屏码长 是几的候选,默认值0,指顶前一个编码

以永码为例(永码是自然双拼加形的)
commit=1 0 2
第一个参数1
nihk 你好
编码唯一,4码是全码,但输入编码后不会自动上屏,要下一个按键自动顶屏,或者手动键选
第二个参数0
um' 什么
输入umr,umr是空码,这时候会上屏“什么”两个字,而把“r”留下作为一个字词的首个编码
第三个参数
2
wojw 我家
de 的
deg 第二个
gbq 狗
输入wojwdegbq,就把“我家的狗”打出来了,“我家”是被de给顶上去的,
而“de”是因为degb是空码,顶的是码长“2”的编码,也就是de。
如果这个参数是0,就应该顶前一个编码,也就是deg“第二个”。

第三个参数的好处是,对于某些句子就可以不用打断思维,有些字就不用空格上屏,直接打下去就行了。
做这个参数的主要目的是因为个人打字的时候经常打整句一样二码一字连续打下去了,做出来容错的,
对其他的编码来说应该说是没多大的用处的,一般保留默认值0就行了。

联想功能设置

[xxxx]
#
联想设置 0:禁用 1-:长度(如设为:2 则表示只联想2字及以上长度的词)
assoc_len=0
#
开始联想的字数(如设为:2 则表示输入2字及以上长度的词时才开始联想,打单字是不联想的)
assoc_begin=2

#使用已上屏字词进行联想的字数 ,仅码表输入法有效(如设为:10 则表示最多用已上屏的10个字来匹配联想库)
assoc_hungry=10
#
联想的方式 0:只联想一次,1:循环联想
assoc_loop=0
#
启用联想词组的自动调频,仅在与assoc_dict配合使用时有效,且不会保存 。
assoc_move=1

#联想历史记录,设置的数字是指联想范围是最后输出的多少句。 在设置了assoc_hungry之后,这个功能无效。
#如果打开了输入法的历史记录功能,那么重启输入法的时候会重新加载需要的句子。
#设置范围从1-65535,太大会影响速度
assoc_history=1000

#是否保存联想调频后的结果
assoc_save=1


联想词默认是在码表中寻找的,如果需要更好的联想功能,需要自己设置联想词库
联想词库设置方法
[xxxx]
assoc_dict=dict.txt

dict.txt格式如下
的人 狗 猪
大家 家,好人 家好,坏

这样一行行的,第一个字表示词的首字,之后的每个词不要再包含这个字。
如果用逗号隔开,那么表示严格用逗号前的词进行联想

联想词库允许不把同一字打头的所有词放在不同行,但这些行必须连续。

例如以下设置的意思为:2字以上词开始联想,最多用已上屏的3个字进行 匹配联想。

assoc_hungry=3
assoc_begin=2

◆一些配置文件中的设置

候选框设置
设置候选框字体
[input]->font=宋体 12
设置候选框偏移
[input]->offset=x,y
候选窗口显示设置
[input]->noshow
大家都知道设成1和0是干什么的,其实可以设置成
2,就可以把候选窗口一直显示着了。
在隐藏候选窗的时候在有重码时自动显示
[input]->auto_show=4
这里表示从四码开始有重码时自动显示
候选字数设置
[input]->strip=a b;c d
ab是一般候选项显示的首尾字数,cd是首选候选项显示的首尾字数,其中在后面的数字可以省略
abcd都不能超过
32

候选显示设置
[input]->select=1: 2: ...

状态栏设置
[main]->pos=x,y
在不设置y只设置x的情况下
0:右下 1:顶部居中 2:左下
两个值都设置,那么就是指定状态栏左上角相对于屏幕左上角的x,y坐标。
最新版中x和y允许使用表达式。表达式中允许存在几个变量,
SW=屏幕宽度,SH=屏幕高度,Sw=工作区域的屏幕宽度。Sh=工作区域的屏幕高度。
例:
pos=0
pos=100,100
pos=SW*0.8,Sh-50


◆快捷键设置
繁简转换快捷键设置
[key]->s2t=CTRL_ALT_F
重码选择键,中间用空格隔开,配置中说是二三重码选择,其实这个可以设置9个键
[key]->select=; '
又一个重码选择键,可以设十个,中间没空格,这个是从第一候选项开始设的。
[key]->select_n=0987654321

小小输入法,可以是空格出第一个字,1出第二个字,但只能有十个候选项。
[key]->select_n=\s123456789

按键替换,把一个键替换为另一个键。
[key]->replace=, ; . ' ENTER / 
表示把,替换; .替换为'回车键替换为/。即打,;等。

加词删词快捷键设置
[key]->add=CTRL_INSERT
[key]->del=CTRL_DELETE

编码查询

[key]->query=CTRL_/
拼音匹配快捷键设置
[key]->py_switch=TAB
单字模式切换
[key]->zi_switch='
软键盘开关切换
[key]->keyboard=CTRL_ALT_K CTRL_SHIFT_K
重复输入
[key]->repeat=

笔画输入引导键
[key]->bihua=`

输入法直接切换
[key]->switch_?=
这里?从0-9,指切换到第几个输入法
如果是switch_default则指切换到默认输入法

快键键直接启动命令
[key]->tools[n]=CTRL_A notepad.exe
n是从0开始的数字,本设置项仅最新测试版有效。

字典查询
[key]->dict=ALT_ENTER

一键到简拼

[key]->py_simple=/

加强了对小键盘输入法的支持
[key]->stop=ENTER

小键盘输入法允许定义一个特殊后退键

[key]->backspace=.


其他

键盘操作提示
[main]->tip=1
shift加字母直接送出大写字母
[IM]->ABCD=1
常用字过滤时,临时显示只显示非常用字
[IM]->filter_show=1
单词翻译,在英文模式下(非英语输入法)按alt enter
dict_en=http://dict.iciba.com/%s/
汉字解释,打出汉字,汉持在候选,按alt enter
dict_cn=http://www.zdic.net/zd/search/default.asp?q=%s

 

 

外部帮助文件的菜单挂载 点
输入法帮助

[main]->help=文件
码表帮助

[xxxx]->help=描述 文件

为每个输入法单独加图标,这个图标如果存放在zip包中则只能为png而不能是ico

[xxxx]->icon=文件


设置为繁体输入法
[xxxx]->trad=1
打单字是繁简转换启用一对多功能
[IM]->s2t_m=0,1

0:禁用

1:启用

启动时输入法默认全角
[xxxx]->corner=full

设置提示音
[xxxx]->beep=empty,multi
empty指空码提示,multi指重码提示,两个选项可选
linux下必须已经使能系统中gtk程序的声音效果

对词库中已经存在的词进行提示

[xxxx]->tip_exist=1

提示简码的功能  如设3表示对三重简也进行提示

[xxxx]->tip_simple=1

自动调频设置
auto_move=0,1,2
0:禁用调频
1:快速调频
2:比较慢点的调频

码表编辑的功能,需要自己添加编辑器

[table]->edit="C:\Program Files\EmEditor\EmEditor.exe"

设置分词库

[table]->dicts=

禁用拼音的自动组词后放入用户词库
[IM]->auto_add=0,1
辅助码表候选项个数设置(现在仅适用于码表输入法)
[IM]->cand_a=10

按中英文切换键时自动提交编码并转为英文模式
[IM]->CNen_commit=1
历史记录
[IM]->history=history.txt
设置外挂输入法的输入方式
[IM]->output=0-3

设置输入法为默认英文

[IM]->lang=1

针对每个输入方案设置标点

[IM]->biaodian=bd.txt

指定开始自动调频的码长

[IM]->auto_move_len=

禁用ALT+标点的反中英文标点输出功能
[IM]->alt_bd_disable=1

默认启动时即启用繁简转换
[IM]->s2t=1
 

注:如把一些设置项的参数设成NONE,则表示禁用该设置项的功能。