[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: About wnn



----- Original Message -----
> UCDOS我只是听说过,但不知如何作. 你要是有时间能详悉介绍一下,不胜感激.
以Debian的GB编码用户为例:
        apt-get source cxterm-gb
得到cxterm的source, 
        如比说 source 的目录名为 cxterm-5.1p1 (也可能是别的名字)
的文件, 启动一个emacs会话, 然后输入
        M-x titdic-convert cxterm-5.1p1/dict/UCDOSPY.tit RET
你会发现当前目录下多了一个叫 UCDOSPY.el的文件.
这个文件能干活, 但是干得很糟, 主要是不能输入词(组).

我们需要把象下面这样的项
        ("buduan" "(不断)")
        ("budui" "(不对)(部队)")
变成
        ("buduan" ["不断"])
        ("budui" ["不对" "部队"])
;
把
        ("xian" "籼酰跣跹霰(西安)")
变成
        ("xian" ["籼" "酰" "跣" "跹" "霰" "西安"])
当时我用vim完成了这件事情,
我的一个朋友为此写了个script(不过我发觉它不能对付"xian"这种情况).

#!/bin/bash

EMACS="emacs -batch --no-init-file --no-site-file --multibyte"
EMACSLISPDIR=/usr/share/emacs/21.0.100/lisp/
MV="mv -f"

${EMACS} -l ${EMACSLISPDIR}/international/titdic-cnv --eval '(batch-titdic-convert t)' $1.tit

sed -e '/"(.*)")$/{ 
	s/"(\(.*\))")$/["\1"])/ 
	s/)(/""/g 
}' $1.el > $1.el.tmp

${MV} $1.el.tmp $1.el

${EMACS} -l ${EMACSLISPDIR}/international/quail -f batch-byte-compile $1.el

当时我在vim直接修改的.
首先先做下列变换:
       "(  => ["
       ~~     ~~
       )"  => "]
       ~~     ~~
       )(  => " "
       ~~     ~~~
在得到新文件 UCDOSPY.el.1中,
需要把象下面这样的项:
        ("xian" "籼酰跣跹霰(西安"])
变成
        ("xian" ["籼" "酰" "跣" "跹" "霰" "西安"])
用sed该怎么做我不清楚.
不过因为象 "xian"这种特殊情况在汉语中实在太少了, 所以当时我
是在emacs里手动修改(在vi里不好做, 因为UCDOSPY.el是mule编码的)的.

最后, 把修改后的 UCDOSPY.el 放到比如你的 $HOME 下,
并且在你的..emacs里加上:
;;; Customize the Chinese Environment
(load-file "~/UCDOSPY.el")
(set-input-method "chinese-py-ucdos")
(set-default-font "-*-fixed-medium-r-normal-*-16-*-*-*-*-*-fontset-standard")

BTW: 别忘了把coding system设为 Chinese GB

重新启动emacs, 现在你可以在emacs里使用ucdos拼音了(不过只是部分功能).

本来我在附件里放了我一直在用的ucdospy.el(gziped), 我已经在其中添加了许多词条.
可能太大了, 这个list没接收, 如果谁感兴趣, 我可以寄个copy给他.



Reply to: