分类: LINUX
2008-02-03 19:07:30
本软件是自由软件,按GPL发布。
2000年,我在陈向阳、方汉写的《Linux实用大全》上看到了如何为emacs添加输 入法的介绍。于是依葫芦画瓢,写了emacs的五笔字型输入法。最初的汉字 与五笔码的对应表是从cxterm下的五笔字型输入法里取来的(经过了格式转换)。 但是这样的输入法是建立在emacs的Quail的基础上的,没有办法方便地增加词组。 我写了一个简单的Perl程序,把积累起来的词组写入Wubi.el。但还是不能在输 入的过程中动态地添加词组;而且要用一种“外部”的语言来生成Lisp文件,有 损Lisp的威名。这个问题一直困扰着我,直到我学习了Lisp,写了 这个emacs下的五笔字型输入法。
本输入法是emacs下的五笔字型输入法,支持的字符集是GB2312,编码方式是 EUC-CN。可以在以下一些版本里运行:
其它版本并不是说不能用,只是因为我只试了这几个版本。我估计只要是20 版以上的emacs(包括xemacs)都可以使用,因为本输入法是建在MULE的基础上 的,没有用到emacs的其它特性。如果您在其它的emacs版本上成功使用了本输入 法,请告诉我,我把它添加到上面的名单里去。
请从此处五笔字型输入法。
本软件可以安装在任何您有权安装的目录里。下载之后,请在shell里执行 以下命令:
$ tar -C-zxf wubi.tar.gz
其中
(add-to-list 'load-path "/wubi")
(require 'wubi)
(wubi-load-local-phrases) ; add user's Wubi phrases
(register-input-method
"chinese-wubi" "Chinese-GB" 'quail-use-package
"WuBi" "WuBi"
"wubi")
(if (< emacs-major-version 21)
(setup-chinese-gb-environment)
(set-language-environment 'Chinese-GB))
(setq default-input-method "chinese-wubi")
这几句Lisp代码的作用是设置中文环境、注册五笔字型输入法。保存.emacs后请 重新启动emacs,使得上面的设置生效。现在您可以用快捷键C-\ (同时按住 Ctrl和反斜线键)唤出五笔字型输入法了。在emacs的mode line上会出现“五笔 字型”的字样。如图:
再次用C-\可以关闭输入法。用命令M-x customize-group wubi可以定制词组 文件的名字:
WuBi Phrases File指定存放用户自定义词组的文件。WuBi Phrases File El 是增加词组的lisp代码。这两个文件都由输入法自动生成,用户只要指定它们的位 置就可以了。它们的默认值分别是 ~/wubi-phrased.txt 和~/wubi-phrased.el。
本输入法没有按拼音查五笔编码的功能。
词组输入是五笔字型的优势。您可以用命令add-wubi增加词组。也就是说,M-x 后面跟add-wubi。如果词库中已经有了您所加的词组,add-wubi不会再次增加该 词组。加完之后你就立即可以用五笔字型的词组输入法来输入这个词组了。 (add-wubi还有一个作用:把您增加的词组保存在您定制的Wubi Phrase File里。 积累到一定数量后,大家可以交换这个文件,以丰富彼此的词组。)
用命令del-wubi可以删除一个词组。不过有个限制:如果这个词组是它的五笔码 的唯一候选者,就不能删除它。
键盘上的键 | 中文符号 |
---|---|
/ | 、 |
, | , |
. | 。 |
: | : |
; | ; |
? | ? |
< | 《 〈 |
> | 》 〉 |
[ | [ 【〖 |
] | ] 】〗 |
\ | … |
- | - — |
( | ( |
) | ) |
! | ! |
* | · |
' | ‘ ’ |
" | “ ” |
我们经常用到add-wubi,del-wubi等命令,可以为它们设置快捷键,emacs里的 术语叫做key binding。您可以按照自己的习惯,为这些命令设置快捷键。例如, 我用Ctrl-+来唤出add-wubi、Ctrl--来唤出del-wubi,在~/.emacs里,增加如下 两句:
;;; key bindings of WuBi
(global-set-key [?\C-+] 'add-wubi)
(global-set-key [?\C--] 'del-wubi)
如果您手头有许多词组,可以把它们放在您定制的Wubi Phrase File里,. emacs里的(wubi-load-local-phrases)命令会把词组加入词库。
用户增加的词组保存在一个单独的文件里(即用户指定的Wubi Phrase File), 在emacs启动的时候动态地增加到五笔字型词库里去。因此在一个多用户的环境 里,每个用户有自己不同的词组文件。为了把用户的词组真正加入到输入法里, 让每个用户都能分享别人的词组,必须更新安装目录里的wubi-rules.el。如果 安装在系统目录里,只能由管理员来更新了。他不必懂emacs或lisp,只要这样 做就行:
# cp 五笔字型词组文件 五笔字型安装目录/wubi-phrases.txtwubi-rules.el被更新,加入的词组对所有用户都有效了。 您可以提供的帮助有:
# emacs --batch -l update.el
我的目标是把此输入法做成收词最全的五笔字型输入法,实现模块化、分类化。 也就是说,一类词组单独做成一个模块,在您需要的时候才加载,比如:计算机 类词组,化工类词组,医学类词组等等。
引入其它常用的输入法。
利用获得的庞大词库,衍生出其它项目。
进入Emacs的官方版本。