LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1236|回复: 2

为emacs增加汉字输入法

[复制链接]
发表于 2003-9-6 21:21:49 | 显示全部楼层 |阅读模式
现在的emacs都不带五笔输入了,找了一篇文章,打算自己做一下 

              为emacs增加汉字输入法

(作者:szq@ia.hust.edu.cn)

一.安装emacs

一般的linux都安装了emacs,据说20.2版开始支持多语种增强Mule(MultiLingual

Enhancement),但作者的RedHat Linux 5.1的emacs-20.2-10没有集成了Mule,怪事!

(如有Mule,则emacs的菜单上有Mule项).



第一步当然是从网上抓回下面几个文件:

  Emacs的源文件:  emacs-20.3.tar.gz

  多国文字输入法: leim-20.3.tar.gz

  国际字库包:     intlfonts-1.1-split/README

                  intlfonts-1.1-split/Makefile.Z

                  intlfonts-l.1-split/Chinese.tar.gz

                  intlfonts-1.1-split/Chinese-BIG.tar.gz

国际字库包也可以只抓一个文件intlfonts-1.1.tar.gz,作者嫌它太大,所以选择了分开

的中文字库.注意Makefile.Z一定别忘记了.



第二步,展开emacs包和leim包.leim包会自动插到emacs的路径下.



第三步,编译并安装emacs.

  读emacs-20.3/README可以得到详细的步骤.缺省的安装是放在/usr/local目录下.如此

最好,原来的emacs有关文件放在/usr/share目录下.



第四步,安装汉字字库.

  原来的X11R6有两个跟汉字有关的字库,其路径是/usr/X11R6/lib/X11/fonts/chinese和

/usr/X11R6/lib/X11/fonts/misc.新增加的Chinese.tar.gz是非X的汉字库,

Chinese.tar.gz是大字体(不是台湾使用的BIG5!),读一下README,有详细的说明.

  在这个地方,作者手工改了一下,把/usr/X11R6/lib/X11/fonts/chinese换成

/usr/X11R6/lib/X11/fonts/Chinese,把fonts.alias文件和fonts.dir文件的内容改了一

下,让非X的汉字与X的汉字放在一个目录下.



第五步,修改/etc/X11/XF86Config文件,在设置FontPath的地方加上汉字库,使之看起来象

这样:

  FontPath "/usr/X11R6/lib/X11/fonts/Misc/"

  FontPath "/usr/X11R6/lib/X11/fonts/Chinese/"

  FontPath "/usr/X11R6/lib/X11/fonts/Chinese-BIG/"

这样,下次进入X Window时就会自动加载汉字.



第六步,可以删除原来的emacs-20.2-10包了.





二.为emacs设置中文环境

  写个$HOME/.emacs文件:

   (setup-chinese-gb-environment)

   (global-set-key [f1] 'toggle-input-method)

   (setq default-input-method "chinese-py")

  第一行是设置中文GB环境,第二行是将F1键定义为"中文/英文"的输入法热键,第三行将

缺省的输入法定义为拼音输入.

  当然还有很多输入法,看看/usr/local/share/emacs/20.3/leim/leim-list.el文件就可

知道.





三.修改emacs的窗口与字体

  原来$HOME/.Xdefaults关于emacs的字型大小是这样写的:

    emacs*fonts: fixed

  看看/usr/X11R6/lib/X11/fonts/misc/fonts.alias文件,它是这样定义fixed的:

    fixed -misc-fixed-medium-r-semicondensed--13-120-75-75-c-60-iso8859-1

  这种定义使得汉字看起来不漂亮,所以把fixed改为8x16.

    8x16 -sony-fixed-medium-r-normal--16-120-100-100-c-80-iso8859-1

  好多了.大家也可按照fonts.alias的说法,改为其它的大小.





四.为emacs增加五笔字型输入法

第一步,找到cxterm的五笔字型输入法WuBi.cit (在/usr/X11R6/lib/X11/cxterm.dic/gb/

目录下).



第二步,转成WuBi.tit文件.命令为:

      cit2tit WuBi.cit > WuBi.tit



第三步,转成WuBi.el文件和WuBi.elc文件.

  需要启动emacs,在emacs中键入"M-x titdic-convert WuBi.tit",会生成WuBi.el文件.

然后在菜单上找到Emacs-Lisp,选择"Bite-Compile This File",则生成WuBi.elc文件.

  (怎样键入M-x呀? 它表示Meta+x,作者一般是同时按下alt和x两个键.)

  把刚才生成的两个文件copy到/usr/local/share/emacs/20.3/leim/quail目录下.



另:作者对刚才生成的五笔字型输入法不满意,主要是在Windows下习惯了按空格键接受汉字.

现在一按空格,真的在屏上出现一个空格.

所以,找到WuBi.el文件的以下行:

   ("." . quail-next-translation)

   (">" . quail-next-translation)

   ("," . quail-prev-translation)

   ("<" . quail-prev-translation))

改为:

   ("." . quail-next-translation-block)

   (">" . quail-next-translation-block)

   ("," . quail-prev-translation-block)

   ("<" . quail-prev-translation-block)

   (" " . quail-select-current))

当然,现在要再作一次WuBi.elc文件啦.



*************哈,现在开始享用你的emacs吧.*****************
 楼主| 发表于 2003-9-6 21:42:14 | 显示全部楼层

备用(不是我写的)

因为cxterm本身就不能正确输入五笔字型的词组。我曾经找到了在cxterm中使用五笔字型的方法,具体方法如下:

1,用cit2tit将WuBi.cit转换成WuBi.tit。
2,把WuBi.tit中的码表用cce源代码中的五笔字型码表替换掉。
3,AUTOTSELECT选项的内容选用WHENNOMACTH。
4,BIGINDICTIONARY改成BIGINPHRASE。
5,把英文标点符号加入VALIDINPUTKEY。
6,删除文件中其余的英文标点。
7,在码表部分加入英文标点与中文标点对应的内容,例如:
    , ,
    . 。
8,用tit2cit将WuBi.tit转换成WuBi.cit。

经过以上的修改,CXTERM中的五笔字型输入法虽然还不完善,但已经相当好用了
 楼主| 发表于 2003-9-7 14:04:42 | 显示全部楼层
弄好了,找了一个wubi.tit
及极点五笔那里的wubi98_2312(反正emacs不支持gbk)

现在可以用PuTTY.exe连到linux,用emacs -nw 输入中文了:cool:
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表