Loading...

龙文郑码码表 for scim

Filed under: 编程, 软件 — 深柳堂主 @ 2007-06-20 08:28:51 Comments

如果你不幸像我一样,是windows自带的郑码的死忠老用户;有一天你突然进入了linux世界,发现没有一款顺手的郑码输入法而寸步难行,举步维艰;那么我前两天所做的工作,或许就对你有一点用。感觉linux郑码是小众软件,不是大众选择。

我把龙文郑码的码表,结合其词频,编译成了scim格式,顿时感觉顺手了。先把用来转换的perl程序贴出来。如果你懒得自己动手编译,给我发个email或跟个贴子就得。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#!/usr/bin/perl -w
# 此程序的作用是,把windows下的龙文平台郑码码表,转换成linux下的scim格式备用.
# rex.zhasm
# 18 Jun 2007
#
#
$filename="winzm_utf8.txt";
                #为解码操作方便,转换为utf8格式.
open(ZM,"$filename") or die "can not open $filename!";
while()
{
  if(/([x80-xff]+)(w+).*?(d+)/)
  {
    my $cipin=int($3/241*65536);
                #龙文的词频最高值是241,而scim的最高是65536,
                #因此这里转换成65536的,以适应scim。
        my $code=$2;
        my $len=length($code)-1;
                #此处-1,是因为perl的数组下标从0开始.
        my $hz=$1;
                #统一起见,使用变量$hz来表示汉字部分.
        my $line=$code."\t".$hz."\t".$cipin."\n";
                #联接成scim的格式.
        push @{$code[$len]},$line;
                #按不同的码长,存放到不同的数组中.例如,码长为1,就放到[0]数组中.2就放到[1]中.
                #此处得到了cnhacktnt的帮助.
  }
}
for $row (@code) {
        @$row=sort(@$row);
#               对每组数组按编码的ascii码排序
    print "@$row\n";
                #打印出每组数组.
                #可能打印出来后,还需要%s/^s//操作一下.
}

———————————-modification———————————-
22-Sep-2008: 最新版郑码词库for scim:点击这里下载。

郑码输入法

Filed under: 娱乐, 软件, 随笔 — 深柳堂主 @ 2007-01-14 14:32:00 Comments

全拼(一个月),智能ABC(一年半),紫光(一两个月),郑码(剩下的时间),这是我使用过的输入法。现在固定使用郑码,不再更换。
当时之所以选择郑码而不是五笔,是因为五笔有两种:86和98,让我无法适从。况且五笔每次还得自己安装,而郑码是微软默认的输入法之一。
一学起郑码,我觉得十分投缘。智能ABC的老用户都知道,”1横2竖3撇4捺5顺折6反折7叉8框“的秘诀。这套秘诀用熟了,姓名、生僻字都不在话下。而郑码的编码方式在某些方面是与之相对应的,至少我是能够找到其中的对应关系,特别容易上手。于是一用就用到现在。

ps:进入Linux世界之后,郑码不再是默认的输入法之一了,我只好自己动手安装。好在怕麻烦的,也不会去碰Linux,呵呵。

PS:根据 cnzz的统计,“郑码”这个关键词大多指向本篇博文。因此,在下向各位推荐一个郑码的网址::
郑码爱好者家园http://www.cn25.net/

相关推荐:

龙文郑码码表 for scim