|

楼主 |
发表于 2009-6-11 00:38:57
|
显示全部楼层
海峰五笔码表转给scim用可以,用utf-8编码
装上scim,换输入法
#im-switch -s scim -z zh_CN
win里imegen输入法生成器逆转成txt
$vim sun86.txt
:set fileformat=unix
:set fenc=utf-8
:wq
去头,只留词条编码,以utf-8编码保存
再用vim打开会看到开头有<feff>,按x删掉重新保存,这是windows里产生的,之前以dos格式打开没显示
$HOME/.vimrc里要有类似这样一行自动检测编码:
set fileencodings=utf-8,gbk,big5,gb18030,utf-16,utf-16le
海峰五笔码表用它带的增强版输入法生成器逆转得到的txt,一个字多种编码是在一行的,如:是j jghu,都要保留且分开,每行一条编码,和fcitx要的txt格式是一样的
win2fcitx转换不行,gb18030的可以正常转换,utf-8不行
工a aaaa变成了aaa 工a a
上网找半天,找不到现成好用的程序,找awk教程,看得云里雾里
直接啃awk manpage,好歹写出个能正常用的脚本,第一次用awk
这程序怎么看起来那么像C,汗。。。本来差点想写C的,觉得太麻烦
win2lin- #!/bin/bash
- awk '{
- match($1,"[a-z]");
- if (RLENGTH > 0) {
- WORD = substr($1,1,RSTART-1);
- print substr($1,RSTART)"\t"WORD;
- for (i=2;i<=NF;i++)
- print $i"\t"WORD
- }
- }' $1
复制代码
$win2lin sun86.txt > scim.txt
[color="Blue"]修正:
$win2lin sun86.txt | sort | uniq > scim.txt
排序然后去掉重复行(修改win2lin脚本也行),fcitx的txt2mb会自动去掉重复,scim不会
[color="Red"]再次更正:uniq会造成很多相似行被当成重复的而错误地丢掉,不能用uniq,直接改程序,在下面
[color="Magenta"]再次更正...sort排序也不对,部分重复行没排到一起
sort,uniq的错误是因为环境变量LC_ALL不对,更正程序在最下面
$vim scim.txt #根据scim的格式要求,头尾加上些信息(见本贴附件sun86_info.txt,码表加在BEGIN_TABLE和END_TABLE之间,ICON图标路径自己改)
#scim-make-table scim.txt -b -o /usr/share/scim/tables/sun86.bin
重启X,可以用了
能支持7w汉字超大字符集的文泉郑码找不到,郑码爱好者网站都上不了,不知怎么了,中易中标网站总算能上了
五笔转到郑码还真是有些难适应,经常用五笔的字根键位打郑码。。。
还是要继续坚持,郑老的郑码还是更加科学些
继续,把郑码码表转给scim用,比较下到底是fcitx还是scim用得更舒服
[color="Red"]win2lin,带排序,去除重复行- #!/bin/bash
- awk '{
- match($1,"[a-z]");
- if (RLENGTH > 0) {
- WORD = substr($1,1,RSTART-1);
- print substr($1,RSTART)"\t"WORD;
- for (i=2;i<=NF;i++)
- print $i"\t"WORD
- }
- }' $1 | sort |
- awk '{
- if ($0 != pre) {
- print $0;
- pre = $0
- }
- }'
复制代码 [color="Magenta"]win2lin,正确的排序,去除重复行,上面不对- #!/bin/bash
- [color="Red"]export LC_ALL=C[/color]
- awk '{
- match($1,"[a-z]");
- if (RLENGTH > 0) {
- WORD = substr($1,1,RSTART-1);
- print substr($1,RSTART)"\t"WORD;
- for (i=2;i<=NF;i++)
- print $i"\t"WORD
- }
- }' $1 | sort -u
复制代码 |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?注册
x
|