小小输入法入门指南

yong lin 2.5.0

小小输入法入门指南

http://yong.dgod.net/

◆强大的临时英文模式

小小输入法可以在按一个或多个编码之后,按临时英文切换键(默认LCTRL)进入临时英文模式,或者用临时英文引导键进入(拼音输入法默认是v键,其他输入法默认没设)。

临时英文模式可以输出任意日期、快速输出数字和金额、网址 模式、计算器功能。

输出任意日期

进入临时英文模式后输入:2009n4y30r或者2009.4.30就会输出:二〇〇九年四月三十日

快速输出数字、金额

进入临时英文模式后输入:1234567890

就会输出:

一二三四五六七八九零

壹贰叁肆伍陆柒捌玖零

壹拾贰亿叁仟肆佰伍拾陆万柒仟捌佰玖拾元整

输入: 3b5s6

就会输出 : 叁佰伍拾陆

计算器功能

进入临时英文模式输入:如输入3+4则在候选项中可得到结果7,现在支持加减乘除括号。

络模式

小小输入法在碰到空码且前缀符合某些网址字符串的情况下,会自动转成英语输入模式。
自带的网址前缀有:
www.
ftp.
bbs.
mail.
blog.
http://

如果你想输入更多的网址前缀,请创建一个文本文件urls.txt.yong目录下,内容格式为一行一个网址前缀。在极少数情况下,自带的网址前缀可能和码表的编码有冲突,这时你可以在urls.txt的第一行加入!zero就会取消自带的网址前缀了。

在urls.txt的文件尾部加入一行!english表示以此开始的行都是用于补全的网址,然后开始一行一个网址,举例如下:
!english
$[小小论坛]http://yong.dgod.net/
$[小小网盘]http://yong.ys168.com

◆好用的标点符号自定义

在小小输入法的目录下建立文件bd.txt(如果确实需要指定路经什么的,设置[IM]->biaodian=),意保存使用GB18030兼容的编码,不要设置为unicode。
内容格式为:

按键 标点

注:按键和标点间有一空格。

示例:


/ 、

就是把/键的输出标点设置为(顿号)了。

特殊的如:

[ 【 】

标点部分的两个括号中有空格,则循环使用这两个括号。

保存,重新加载输入法之后,就可以看到效果了。

◆输出文字替换功能

默认不开启

开启的快捷键
[key]->crab=CTRL_SHIFT_ALT_H

设置
[IM]->crab=crab.txt

crab.txt中编码为gb18030,示例如下
^ {
$ }
* [?]
兲 玐 王八
你 妳 亻尔

里面放的是汉字替换表,其中
^表示句首,$表示句尾,*表示任意汉字,?代表要替换的汉字。
替换表中一个汉字对应多个内容的,则随机选择其中一个使用。

◆笔画文件制作

就是输入法自带的bihua.bin,使用工具bihua.exe制作
制作命令:
bihua.exe bihua.txt bihua.bin

bihua.txt是gb18030编码,格式如下

#字符 笔顺编号
一    1
丨    2
亅    2
丿    3
丶    4
乁    4
乀    4
乛    5
乚    5
乙    5
二    11
丅    12

◆先进的并击技术

bing选项说明和使用方法:

输入技术,键盘,鼠标(触摸屏),几十年如一日。

但时代在发展,一个是速录机,特殊硬件,两键并击,加快了输入,也更好贴进了传统文字的意义,一击一字,而不用区分开来。
一个是触摸技术的发展,多点触摸这样的技术,相对于传统的单点输入技术,可以更简单的完成操作,一个点击和一次划动对用户来说其实难度基本是一致的。

中文输入法,一般的码表或者拼音,信息来自于编码,传统输入法都是输完一个编码,输入下一个编码。万码奔腾,尽在编码空间上做文章,而对另外一个因素时间基本上忽视了。


bing选项就是像前面说的两个技术一样在不增加复杂性的情况下加入更多的时空因素,以提高输入效率。由于原来极低的起点,即使是如此一个简单的技术,也可以把效率在原来基础上提高很多。比如一简就可以达到三百多个。

这个功能现在还在测试阶段。在配置文件中,在你的输入法那一段设置下面加入配置项,如永码中是:
[yong]
bing=1
bing_p=190 160


bing_p中两个数值,分别是
同手并击异手并击的时间间隔,在这个时间范围之内得到并击,输入法是不认的,单位是毫秒。

并击默认直接输出二简字,永码输出二简词。

按键方式说明:
先按下一个键,不弹起,按下一个键,然后一起松开。


码表对并击的使用方法:
并击会在原来的两个按键之后再产生一个按键+,码表中把+号编码进去就可以了。

在码表表头上进行设置,如:

key=abcdefghijklmnopqrstuvwxyz+

push=+

然后在码表中加入相应的编码,如:bj+ 并击

重新把码表加载到小小输入法中,就可以使用了!如用并击方法输入bj 即可快速输出 并击

◆灵活的键盘布局设置

小小输入法键盘布局功能设置:

键盘功能指调整按键映射关系,比如键盘上两个按键互换等。
本功能有限,只在有限范围之内实现,比如不支持大写字母,不支持快捷键等等。
在配置文件中的设置
[IM]->layout=layout.txt

layout.txt文件格式如下,文件编码必须是gb18030的

up=1 <<这里指按键在键弹起的时候才起作用,默认为0
lr=1 <<左右手同时支持两个键盘,默认为0
space=1 <<空格参与键盘布局,空格始终在输出的最后一个位置
key=abcd <<需要进行应映射的键,建议不要自己设置,默认是大键盘上的a-z;',./
timeout=1000 <<单位是毫秒,超过这个值的两次按键,认为不在一个序列范围之内
biaodian=1 <<lr=1,up=1时有效,单击标点符号直接输出

[DATA] <<从这行以后我们开始真正的对应关系数据部分
a b <<按b出a
b a <<按a出b

在对应关系部分,
第一列表示要输出的字符;第二、三列表示要按什么键和这个字符对应,每列最多放三个在key中定义的字符(不分先后) 。lr=0时,二三列所有的键同时按下才能出第一列的按键。

第一列字符指普通的英文字符,不允许汉字或其他的扩展字符集上文字
\x1b ESC键
\b 退格键
\r 回车键
\t TAB键

◆简便的汉字过滤

这里指的GBK切换,主要是符合一下其他输入法中的称呼,yong输入法的默认常用字是规范汉字表中的一二级6500汉字,更贴合实际需要。

过滤在配置文件中设置,默认是不开启过滤的,要开启的话请把[IM]->filter设为1

#汉字过滤
0 不过滤;1 常用汉字; filter=1,1 严格过滤
filter=1

过滤切换的快捷键默认按键
#汉字过滤
filter=\\

小小输入法中的GBK过滤切换只能在一次输入中起作用,也就是说你打完编码之后按一下就能显示生僻字了。

有个例外情况,就是你打了一个编码,这个编码在过滤之后是空码,但里面有生僻字,程序就自动关掉了生僻字过滤功能,这就是为什么经常能看到生僻字出现在候选中的原因了。

补充说明:
默认的常用汉字指GB2312,其他汉字则是非常用的,但用户可以在码表中用
~键翻转功能手动修改属性。
比如:
js ~
变成了常用字
aa ~
变成了非常用字

如果用户的常用字和gb2312有很大的出入,调整码表不方便的(比如繁体用户、将来的8000字标准),可以新建
normal.txt,把常用字放在里面即可。

某些用户不想在空码的时候禁用过滤,可以设定严格过滤模式。
filter=1,1
第一个1表示使用常用字过滤功能,第二个1表示严格过滤,即使空码状态也不自动禁止常用字过滤。

常用字过滤时,临时显示只显示非常用字的设置:
[IM]->filter_show=1

◆方便的命令直通车

命令格式是:

$GO(说明,命令)其中第一个参数说明可以省略

举例:

进入小小论坛
/xx $GO(小小论坛,http://yong.dgod.net/)

打开记事本
/jsb $GO(记事本,notepad.exe)


限制:
不支持命令参数,因此较复杂的命令,可以额外写个bat文件来间接调用。

命令中可以加入环境变量,用$(变量名)表示。

命令中存在空格时用$_代替。

◆密码输入功能使用说明

用户需要首先创建一个记录用户名密码的文件,文件名必须是book.ini,例:

# 这里的yong是用来引导密码输入的,代表某个场景,比如本论坛。
[yong]
# 也可以不加密,如user=dgod
user=$[用户]$DECRYPT(加密字符串)
pass=$[密码]$DECRYPT(加密字符串)


ps: $[用户]$DECRYPT(加密字符串),这种格式的词也可以放在码表中加密少数几个词

照例,小小输入法中的ini文件必须是
utf8编码的

下面说一下加密字符串的生成,例(临英引导键为
;时)
先输入密钥(整个输入法启动之后只需要输入一次),可以用
miyao代替key
;key 1234
输入要加密的文本,不能大于64个字节,可以用
jiami代替encrypt
;encrypt username

使用方法,就是在临英状态下直接输入,例(临英引导键为;时):
输入密钥
;key 1234
输入用户名
;yong,user
输入密码
;yong,pass

安全说明
加密算法还是不错的,很难被破解,但仍然只建议保存非重要信息,重要的用户名密码不要通过这种方式输入。

语音校对功能

系统调用的是系统默认的文本转语音模块,我只在win10和win7上测试成功。

设置(仅启动时检查一次)
[IM]->speak=1 0 0


第一个参数表示是否启用这个功能
第二个参数表示朗读速度,范围是-10到10
第三个参数表示是否朗读标点

[key]->speak=CTRL_ALT_SHIFT_S

存在的问题:
两次朗读之间的间隔有点大,不知道怎样能解决。

◆完善的DOS命令

编码转换
yong -conv unicode.txt gb18030.txt

码表优化
yong --tool=libmb.so mb.txt out.txt dump --option=head,main --format=yong

码表归并
yong --tool=libmb.so mb.txt out.txt dump --option=head,main,user --format=yong

转码表格式
yong --tool=libmb.so mb.txt out.txt dump --option=main --format=?
?=win,fcitx,scim
yong mb.txt out.txt dump --option=main --format=fcitx
yong mb.txt out.txt dump --option=main --format=scim

批量加词
yong --tool=libmb.so mb.txt out.txt dump --option=head,main --format=yong --add=file.txt

提字词
yong --tool=libmb.so mb.txt out.txt pick --option=main --clen=x --dlen=y
x:编码长度 y:字词长度

查找码表中不存在的字词
yong --tool=libmb.so mb.txt out.txt diff file.txt

码表测试
yong --tool=libmb.so mb.txt out.txt stat --level=?
?=hz1,hz12

赛码
yong --tool=libmb.so mb.txt out.txt play file.txt

编码
yong --tool=libmb.so mb.txt out.txt encode file.txt

以上命令中各参数的意思是:
mb.txt 就是挂在小小上的主码表
out.txt 输出内容,这条里面是编完码后的词条
file.txt
待编码词条

路径都是相对于小小的安装路径的。

◆简便的文本查询功能

一、查英文单词
1 进入英文或者临时英文模式
2 输入要查的单词
3 按快捷键
ALT_ENTER

二、查汉字以及词组
1 输入字词,保持不上屏,留在候选框上
2 用光标上下键,选中想查的字词
3 按快捷键
ALT_ENTER

三、网络查询
默认的辞典网站是
www.iciba.com和www.zdic.net,用户可以在配置文件中自定义。如:
[IM]
dict_en=http://dict.iciba.com/%s/
dict_cn=http://www.zdic.net/zd/search/default.asp?q=%s
 

使用方法:
查英语单词时,进入英文或者临时英文模式,输入你要查的单词,然后按ALT_ENTER快捷键。




查汉字时, 输入字词,保持不上屏,留在候选框上,用光标上下键,选中想查的字词,然后按ALT_ENTER快捷键。

 

、本地查询

查询的文件是安装目录或者.yong用户目录下的dict.txt,如果在linux下是用rpm装的输入法,
安装目录指的是/usr/share/yong目录。

dict.txt文件,是一个纯文本文档,采用gb18030编码,格式举例如下:

的 de
主词
速度发赛速度罚f
速度发送地方随风倒

地 de
速度分类懊丧发送地方懊丧df爹vd非

速度 sudu
动罚lf
速度罚非

test
测试

an
一个的意思


====================================================================
拼音:gāo  注音:ㄍㄠ
部首:高,部外笔画:0,总笔画:10
五笔86&98:YMKF  仓颉:YRBR  郑码:SJLD  
笔顺编号:4125125251  四角号码:00227  UniCode:CJK 统一汉字 U+9AD8

◆高级的编码展开提示

不推荐使用这功能,仅把这功能记在这,以免忘记。

首先在配置文件中加入展开提示的配置:

在[IM]下加一项
key_desc=mb/desc.txt

按键的展开提示按以下条件区分
词的长度
按键在输入编码中的位置区分

先设置当前的词长度
#
e表示等于,a表示大于等于
size=e1

然后设置分隔符,不设则表示不用分隔符
#每两码添加一个分隔符-号,如果用空格,则用
SPACE代替
split=2 -

接下去就是按键和展开提示的对应了
# a代表按键(1-2个字符),数字表示所在的位置,不同位置键用|分开,数字后面的字符串就是展开提示了
a=1 王 | 2 土 | 3 大 |4 木 | 5 工
比如输入aaaaa,那么就会在编码位置显示“王土大木工"

好了,想必大家也明白了。

desc.txt的样例:

size=e1
split=2 -
a=1 [S]a | 2 [Y]a | 3 [X]a | 4 [X]a
b=1 [S]b | 2 [Y]b | 3 [X]b | 4 [X]b
c=1 [S]c | 2 [Y]c | 3 [X]c | 4 [X]c
d=1 [S]d | 2 [Y]d | 3 [X]d | 4 [X]d
e=1 [S]e | 2 [Y]e | 3 [X]e | 4 [X]e
f=1 [S]f | 2 [Y]f | 3 [X]f | 4 [X]f
g=1 [S]g | 2 [Y]g | 3 [X]g | 4 [X]g
h=1 [S]h | 2 [Y]h | 3 [X]h | 4 [X]h
i=1 [S]ch | 2 [Y]i | 3 [X]i | 4 [X]i
j=1 [S]j | 2 [Y]j | 3 [X]j | 4 [X]j
k=1 [S]k | 2 [Y]k | 3 [X]k | 4 [X]k
l=1 [S]l | 2 [Y]l | 3 [X]l | 4 [X]l
m=1 [S]m | 2 [Y]m | 3 [X]m | 4 [X]m
n=1 [S]n | 2 [Y]n | 3 [X]n | 4 [X]n
o=1 [S]o | 2 [Y]o | 3 [X]o | 4 [X]o
p=1 [S]p | 2 [Y]p | 3 [X]p | 4 [X]p
q=1 [S]q | 2 [Y]q | 3 [X]q | 4 [X]q
r=1 [S]r | 2 [Y]r | 3 [X]r | 4 [X]r
s=1 [S]s | 2 [Y]s | 3 [X]s | 4 [X]s
t=1 [S]t | 2 [Y]t | 3 [X]t | 4 [X]t
u=1 [S]sh | 2 [Y]u | 3 [X]u | 4 [X]u
v=1 [S]zh | 2 [Y]v | 3 [X]v | 4 [X]v
w=1 [S]w | 2 [Y]w | 3 [X]w | 4 [X]w
x=1 [S]x | 2 [Y]x | 3 [X]x | 4 [X]x
y=1 [S]y | 2 [Y]y | 3 [X]y | 4 [X]y
z=1 [S]z | 2 [Y]z | 3 [X]z | 4 [X]z
;=3 [X]; | 4 [X];
/=3 [X]/ | 4 [X]/
size=e3
split=1 SPACE
a=1 [S]a | 2 [Y]a | 3 [S]a | 5 [X]a
b=1 [S]b | 2 [Y]b | 3 [S]b | 5 [X]b
c=1 [S]c | 2 [Y]c | 3 [S]c | 5 [X]c
d=1 [S]d | 2 [Y]d | 3 [S]d | 5 [X]d
e=1 [S]e | 2 [Y]e | 3 [S]e | 5 [X]e
f=1 [S]f | 2 [Y]f | 3 [S]f | 5 [X]f
g=1 [S]g | 2 [Y]g | 3 [S]g | 5 [X]g
h=1 [S]h | 2 [Y]h | 3 [S]h | 5 [X]h
i=1 [S]i | 2 [Y]i | 3 [S]i | 5 [X]i
j=1 [S]j | 2 [Y]j | 3 [S]j | 5 [X]j
k=1 [S]k | 2 [Y]k | 3 [S]k | 5 [X]k
l=1 [S]l | 2 [Y]l | 3 [S]l | 5 [X]l
m=1 [S]m | 2 [Y]m | 3 [S]m | 5 [X]m
n=1 [S]n | 2 [Y]n | 3 [S]n | 5 [X]n
o=1 [S]o | 2 [Y]o | 3 [S]o | 5 [X]o
p=1 [S]p | 2 [Y]p | 3 [S]p | 5 [X]p
q=1 [S]q | 2 [Y]q | 3 [S]q | 5 [X]q
r=1 [S]r | 2 [Y]r | 3 [S]r | 5 [X]r
s=1 [S]s | 2 [Y]s | 3 [S]s | 5 [X]s
t=1 [S]t | 2 [Y]t | 3 [S]t | 5 [X]t
u=1 [S]u | 2 [Y]u | 3 [S]u | 5 [X]u
v=1 [S]v | 2 [Y]v | 3 [S]v | 5 [X]v
w=1 [S]w | 2 [Y]w | 3 [S]w | 5 [X]w
x=1 [S]x | 2 [Y]x | 3 [S]x | 5 [X]x
y=1 [S]y | 2 [Y]y | 3 [S]y | 5 [X]y
z=1 [S]z | 2 [Y]z | 3 [S]z | 5 [X]z
;=5 [X];
'=4 [W]'
/=5 [X]/
size=e2
split=2 SPACE
a=1 [S]a | 2 [Y]a | 3 [S]a | 4 [Y]a | 5 [X]a
b=1 [S]b | 2 [Y]b | 3 [S]b | 4 [Y]b | 5 [X]b
c=1 [S]c | 2 [Y]c | 3 [S]c | 4 [Y]c | 5 [X]c
d=1 [S]d | 2 [Y]d | 3 [S]d | 4 [Y]d | 5 [X]d
e=1 [S]e | 2 [Y]e | 3 [S]e | 4 [Y]e | 5 [X]e
f=1 [S]f | 2 [Y]f | 3 [S]f | 4 [Y]f | 5 [X]f
g=1 [S]g | 2 [Y]g | 3 [S]g | 4 [Y]g | 5 [X]g
h=1 [S]h | 2 [Y]h | 3 [S]h | 4 [Y]h | 5 [X]h
i=1 [S]i | 2 [Y]i | 3 [S]i | 4 [Y]i | 5 [X]i
j=1 [S]j | 2 [Y]j | 3 [S]k | 4 [Y]k | 5 [X]k
k=1 [S]k | 2 [Y]k | 3 [S]k | 4 [Y]k | 5 [X]k
l=1 [S]l | 2 [Y]l | 3 [S]l | 4 [Y]l | 5 [X]l
m=1 [S]m | 2 [Y]m | 3 [S]m | 4 [Y]m | 5 [X]m
n=1 [S]n | 2 [Y]n | 3 [S]n | 4 [Y]n | 5 [X]n
o=1 [S]o | 2 [Y]o | 3 [S]o | 4 [Y]o | 5 [X]o
p=1 [S]p | 2 [Y]p | 3 [S]p | 4 [Y]p | 5 [X]p
q=1 [S]q | 2 [Y]q | 3 [S]q | 4 [Y]q | 5 [X]q
r=1 [S]r | 2 [Y]r | 3 [S]r | 4 [Y]r | 5 [X]r
s=1 [S]s | 2 [Y]s | 3 [S]s | 4 [Y]s | 5 [X]s
t=1 [S]t | 2 [Y]t | 3 [S]t | 4 [Y]t | 5 [X]t
u=1 [S]u | 2 [Y]u | 3 [S]u | 4 [Y]u | 5 [X]u
v=1 [S]v | 2 [Y]v | 3 [S]v | 4 [Y]v | 5 [X]v
w=1 [S]w | 2 [Y]w | 3 [S]w | 4 [Y]w | 5 [X]w
x=1 [S]x | 2 [Y]x | 3 [S]x | 4 [Y]x | 5 [X]x
y=1 [S]y | 2 [Y]y | 3 [S]y | 4 [Y]y | 5 [X]y
z=1 [S]z | 2 [Y]z | 3 [S]z | 4 [Y]z | 5 [X]z
;=5 [X];
/=5 [X]/
size=a4
split=1 SPACE
a=1 [S]a | 2 [S]a | 3 [S]a | 4 [S]a | 5 [X]a
b=1 [S]b | 2 [S]b | 3 [S]b | 4 [S]b | 5 [X]b
c=1 [S]c | 2 [S]c | 3 [S]c | 4 [S]c | 5 [X]c
d=1 [S]d | 2 [S]d | 3 [S]d | 4 [S]d | 5 [X]d
e=1 [S]e | 2 [S]e | 3 [S]e | 4 [S]e | 5 [X]e
f=1 [S]f | 2 [S]f | 3 [S]f | 4 [S]f | 5 [X]f
g=1 [S]g | 2 [S]g | 3 [S]g | 4 [S]g | 5 [X]g
h=1 [S]h | 2 [S]h | 3 [S]h | 4 [S]h | 5 [X]h
i=1 [S]i | 2 [S]i | 3 [S]i | 4 [S]i | 5 [X]i
j=1 [S]j | 2 [S]j | 3 [S]j | 4 [S]j | 5 [X]j
k=1 [S]k | 2 [S]k | 3 [S]k | 4 [S]k | 5 [X]k
l=1 [S]l | 2 [S]l | 3 [S]l | 4 [S]l | 5 [X]l
m=1 [S]m | 2 [S]m | 3 [S]m | 4 [S]m | 5 [X]m
n=1 [S]n | 2 [S]n | 3 [S]n | 4 [S]n | 5 [X]n
o=1 [S]o | 2 [S]o | 3 [S]o | 4 [S]o | 5 [X]o
p=1 [S]p | 2 [S]p | 3 [S]p | 4 [S]p | 5 [X]p
q=1 [S]q | 2 [S]q | 3 [S]q | 4 [S]q | 5 [X]q
r=1 [S]r | 2 [S]r | 3 [S]r | 4 [S]r | 5 [X]r
s=1 [S]s | 2 [S]s | 3 [S]s | 4 [S]s | 5 [X]s
t=1 [S]t | 2 [S]t | 3 [S]t | 4 [S]t | 5 [X]t
u=1 [S]u | 2 [S]u | 3 [S]u | 4 [S]u | 5 [X]u
v=1 [S]v | 2 [S]v | 3 [S]v | 4 [S]v | 5 [X]v
w=1 [S]w | 2 [S]w | 3 [S]w | 4 [S]w | 5 [X]w
x=1 [S]x | 2 [S]x | 3 [S]x | 4 [S]x | 5 [X]x
y=1 [S]y | 2 [S]y | 3 [S]y | 4 [S]y | 5 [X]y
z=1 [S]z | 2 [S]z | 3 [S]z | 4 [S]z | 5 [X]z
;=5 [X];
/=5 [X]/