[2010-01-25 更新]
有人反应在Ubuntu9.10里会有乱码问题,请9.10的同学,到此一游即止。下文你可以略过。
ibus 实在是个非常好的输入法,但是对五笔的支持有些小问题,主要是:
- 繁体字太多,而且排在前面
- 词库很大,所以打起来的时候很多重码
- 默认不是自动直接上屏,需要鼠标点一下,或者按Ctrl+/
- 右shift不是切换中英文
于是我自己折腾着试试看的想法,做了如下hack,该方法只适合五笔熟手,修改也不是很正统的办法,所以不适用于所有用户。建议大家使用官方的更新和补丁。
修改后功能支持
- 自动上屏
- 使用极点五笔的词库
- 没有繁体字
- 基本没有重码,对于五笔熟手特别好用
- 右shift 不再切换拼音模式
下面把过程介绍一下:
1.使用极点的五笔词库
shell:
cd ~ mkdir tmp cd tmp sudo apt-get install scim-modules-table sudo scim-make-table /usr/share/scim/tables/jidianwubi.bin -o jidian.txt
上面是把极点的词库导成txt的明文的格式。如果没有jidianwubi.bin http://www.fs2you.com/files/6b3cb66b-33a5-11dd-97e9-00142218fc6e/ 下载最新的极点6.1
2 下载 ibus-table-0.1.1.20081014 http://ibus.googlecode.com/files/ibus-table-0.1.1.20081014.tar.gz
cd ibus-table-0.1.1.20081014/table/zh
vi wubi86.txt
### Begin Table data.
BEGIN_TABLE
END_TABLE
把这段的内容,用第一步导出的 jidian.txt 里begin_table到end_table的替换,保存退出
3 刪除多余的词组
cd ibus-table-0.1.1.20081014/table/zh
bzip2 -d extra_phrase.txt.bz2
vi extra_phrase.txt 把不要的词都刪除掉,你会发现这里面很多繁体词组,因为词条太多,我干脆就大部分刪除了,只保留了前面100个左右。
注:这一步不是一定要这么做,只是为了不要那么多重码,不适合五笔不熟练的人。我比较懒,所以直接刪除词。(其实可以把繁体词转成简体词,不会判断繁体字,所以我做不了。)
4 修改直接上屏和右shift功能
cd ibus-table-0.1.1.20081014/engine
vi table.py
第754行: 改成True
753 #self._setup_property = Property ("setup", _("Setup"))
754 self._direct_commit = True
755 self.reset ()
656 def r_shift (self):
657 '''Proess Right Shift Key Event as changed between PinYin Mode and Table Mode'''
658 self._zi = u''
659 if self._chars[0]:
660 self.commit_to_preedit ()
661 return True
662 else:
663 return False
664 #self._py_mode = not (self._py_mode)
665 #return True
注:把这段改成和l_shift(self)一样,不过好像并不能右shift切换中英文,只是不会变成拼音模式了,未知原因。
5 编译,安装
make
sudo apt-get install checkinstall
sudo checkinstall make install
sudo dpkg -i ibus-table_0.1.1.20081014-1_i386.deb
推荐ubuntu的用户使用 checkinstall这个软件,制作deb文件非常方便
6 Logout & Login. 试试,打五笔是不是特别爽了?
不想尝试以上步骤的,请直接下载我弄好的码表, wubi86.db
tar -zxvf wubi86db.tar.gz
sudo mv wubi86.db /usr/share/ibus-table/tables