今天有朋友向我询问在 SCIM 的五笔输入法下如何输入各种特殊符号。我们知道,SCIM 五笔所在的 scim-tables-zh 输入引擎功能并不强大,没有 Windows 下常见的软键盘等辅助功能。SCIM 五笔中也只对少数符号设置了编码,如“●”是编码是“pnll”(“实心圆圈”四字的编码),无法输入多数特殊符号。不过作为开源软件,SCIM 的码表扩展还是比较方便的。恰好我以前也被相同的问题困扰过,当时通过扩展编码的方式将区位码表加入了 SCIM 五笔码表。既然有人需要,那就把我修改过的码表略加完善,提供给需要的朋友使用。
从这里下载带有特殊符号的 SCIM 五笔码表:
http://files.linjian.org/c_cpp/Wubi-quwei.tar.gz 或
http://www.linjian.cn/files/c_cpp/Wubi-quwei.tar.gz
如果懒得研究,则直接用解压后的 Wubi.bin 替换系统原有的 /usr/share/scim/tables/Wubi.bin。重新加载 SCIM 之后,可用以下编码输入区位码表中的特殊符号:
第1区 符号 xxxf(“符”)
第2区 数字 xxxs(“数”)
第3区 英文字母 xxxy(“英”)
第4区 日文平假名 xxxp(“平”)
第5区 日文片假名 xxxq(与“p”相反的字母“q”)
第6区 希腊字母 xxxl(“腊”)
第7区 俄文字母 xxxe(“俄”)
第8区 拼音注音 xxxi(“音”的韵首)
第9区 制表符号 xxxb(“表”)
GBK扩展符号A8区 xxxu(代表符号“╙”、“〒”)
GBK扩展符号A9区 xxxo(代表符号“㊣”、“〇”)
这里没有像 Windows 下的很多五笔输入法那样用“z”作为特殊编码的首字母,目的是为了保留“z”的万能查询功能。scim-tables-zh 并不能做更高级的定制,使“z”在不同场合下发挥不同作用。我选择使用“xxx”开头的几个空的编码位置容纳特殊符号,并尽量保证编码的名称有易于记忆的含义。
如果想改变为其它编码方式,可以修改上面包中提供的 mkquwei.c 文件,并参考以下方式重新生成 Wubi.bin:
- gcc mkquwei.c -o mkquwei
- ./mkquwei > quwei.txt
- iconv -f=gbk -t=utf8 -c -o quwei-u.txt quwei.txt
- grep -v -P '\t\t' quwei-u.txt > quwei-f.txt
-
- scim-make-table /usr/share/scim/tables/Wubi.bin -o Wubi.txt
- sed -i '$d' Wubi.txt
- cat quwei-f.txt >> Wubi.txt
- echo 'END_TABLE' >> Wubi.txt
- scim-make-table Wubi.txt -b -o Wubi.bin
- sudo cp Wubi.bin /usr/share/scim/tables/Wubi.bin