⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 readme

📁 Emacs 插件代码,增加unicode支持和中文支持
💻
字号:
1.  Introductionmule-gbk 是为 GNU Emacs21 编写的 GBK 字符集支持软件包. 在 Emacs 获得完善的 unicode 的支持之前, 你很可能会需要用到 mule-gbk. 现在, mule-gbk已经正式成为 Sourceforge.net 的一个项目. 而原先 mule-gbk 通过 中国科学技术大学 的服务器 hua.math.ustc.edu.cn 发布, 给 CERNET(中国教育和科研计算机网) 之外的用户访问带来不便.mule-gbk 的主页: http://mule-gbk.sourceforge.net/(警告: 我们不保证该软件不会损坏你的中文文本!!!)1.1  What's GBK?GBK 是一套比 GB2312 更大的中文字符集, 确切地说是 GB2312 字符集的一个超集.GBK 既不是所谓的 94x94 或者 96x96 字符集也不是 UTF-8, UTF-16 等的子集.1.2  What's Mule?Emacs 中处理多国语言的部分被称为 Mule, 它能很好地对付94x94(GB2312 是一个94x94字符集) 和 96x96字符集, 对 UTF8/UTF16 也有特殊的照顾, 但就是没提供对 GBK 和 GB18030 这些中文字符集的支持, 虽然用户也许可以通过mule-ucs 来使用 GBK 和 GB18030, 但这样不仅不方便, 而且也无法使用 GBK和 GB18030 的字库. 根据我对 Mule 的研究和在 Mule 的 mailing list 上的讨论, 可以断定目前的 Mule 几乎已经没有可供支持 GBK 的发展余地了 :(所幸, 权宜的方法还是有的, 通过"挤占" Mule 中某几个几乎不会被用到的字符编码的 charset-id, mule-gbk 终于把 GBK 支持硬塞进了 Mule 里面 :)2001年, 在化了大约一个月的时间后完成了目前 mule-gbk 中绝大部分的代码,其中很大部分是参照 Emacs21 的 Mule 中的 elisp 代码编写出来的.当时我查找了很多关于中文编码的资料, 特别是关于 GBK 的. 不过我最后能把这个东西写出来主要应归功于 Mule2 的 info(是在当时我使用的 Debian GNU/Linux上找到的) 和 GNU Emacs 中 CCL(Code Conversion Language) 的代码中的文档, 这些使我了解了 Mule 中 CCL 的机制和语法.目前 mule-gbk 只在 GNU Emacs21.3 上作过测试, 不能在 GNU Emacs20 上使用(不过估计要让它在那上面跑也不是什么难事). 由于对 XEmacs21 不太了解, 所以往 XEmacs21 上移植浅尝辄止.2.  Download/Installation最新的 mule-gbk 从 http://mule-gbk.sourceforge.net/ 取得.同时还会把 mule-gbk 的 debian package 放入 debian.ustc.edu.cn 上的APT 安装源 debian-uo 中, 其相应的配置为:    deb ftp://debian.ustc.edu.cn/debian-uo sid ustc    deb-src ftp://debian.ustc.edu.cn/debian-uo sid ustc如果你的系统是 Debian, 你可以把上面两行放入你的 /etc/apt/sources.list然后以 root 身份运行:          apt-get update; apt-get install mule-gbk    就可以把 mule-gbk 安装到你的 Debian 系统上了.如果你无法访问 debian.ustc.edu.cn, 并且从别处获得了我制作的 mule-gbk_???.deb,也可以用命令(以 root 身份运行):          dpkg -i mule-gbk_???.deb    来安装它.对于非 Debian 的系统, 安装方法请参看 INSTALL 文件.3.  Setup3.1 General configuration[1] 如果你的系统是 Debian, 并且已经安装了我为 mule-gbk 制作的 debian    package, 现在请直接跳到步骤[2].    如果你的系统不是 Debian, 或者你不想使用我预先制作好的 deb包, 请    参看 INSTALL 文件, 里面介绍了从源代码安装 mule-gbk 的一般方法.    如果你已经按照 INSTALL文件所述把 mule-gbk 安装到自己指定的目录, 那    么你需要先为 mule-gbk 的 .elc 文件指定 load-path, 具体的配置方法是在    你的 Emacs 的 init file(缺省的是 $HOME/.emacs )加上:    (add-to-list 'load-path "PATH/TO/MULE-GBK")    其中, PATH/TO/MULE-GBK 替换成 chinese-gbk.elc 等文件所在的目录的全路    径名, 比如 /home/bob/mule-gbk .[2] 把下面几行添加到你的 Emacs 的 init file(缺省的是 $HOME/.emacs ) 中去.    ;;; Load mule-gbk    (require 'mule-gbk)    ;; Setup GBK environment    (set-terminal-coding-system 'chinese-gbk)    (set-keyboard-coding-system 'chinese-gbk)    (set-language-environment 'chinese-gbk)    (setq locale-coding-system 'chinese-gbk)    (setq current-language-environment "Chinese-GBK")    ;; Setup X Selection for mule-gbk    (mule-gbk-selection-setup)    如果你在 X 下使用 Emacs, 上面最后两行配置会得 mule-gbk 可以和其它的    X 应用互相复制/粘贴文本.    不过, 可能由于 XFree86 在实现上的一个 bug, 上述设置还不能马上使你享受    Emacs 和其它 X 应用之间的"无阻的交流". 你还需要做点额外的工作.    检查一下你的系统中的这个文件:          /usr/X11R6/lib/X11/locale/zh_CN.gbk/XLC_LOCALE    在这个文件的最后几行中有没有看到这样一行?                 ct_encoding     GBK-0:GLGR:\x1b\x25\x2f\x32\x80\x88\x47\x42\x4b\x2d\x30\x02            把 "\x80\x88" 直到行末的内容全删了或者注释掉, 也就是改成:          ct_encoding     GBK-0:GLGR:\x1b\x25\x2f\x32    然后, 重新启动 X server 以使新的设置生效.     这样一来, X 的从 GBK 文本到 compound text 的转换才符合 compound text 的编码    规范(详情见 XFree86 代码中所附文档: ctext.ps).    注1: 我已经把相关的 patch 发给 XFree86 team, 他们已经接受了这个    patch. See: http://bugs.xfree86.org/show_bug.cgi?id=1362    相同的 patch 也发给了 Debian Project(由于广为人知的 license 问题,    Debian 已经不再采用新版的 XFree86), 而且也已被接收, 但是这个    patch 将从下一个 Debian 的 xfree86 的 下一个 release(可能是    xfree86 4.3.0.dfsg.1-7) 开始采用.    See: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=255224    注2: 一些现代化的 X 应用程序, 在 X selection 中能够用 UTF8 来对传    输的文本作编码, 这种情况下如果按照 README.unicode 中的方法配置 X    selection, 则可以不用本步中的设置. 不过, 由于有些软件不支持 UTF8    编码的 X selection, 所以还是推荐加上本步中的设置.[3] 如果你只在 console/terminal 上使用 Emacs, 这一步对你是没有意义的.    配置 X resources:    用户自己的 X resources 对应的配置文件通常是     $HOME/.Xdefaults 或者 $HOME/.Xresources    一般, 在 X 会话开始的时候, 相应的启动的脚本会读取以上两文件之一以    把其中定义的 X resources 载入 X server.    事实上, 你不妨把其中一个设置为另一个的 symlink(符号连接), 这样使得    原本要维护两个文件的内容变为只要维护其中之一.    做符号连接的相应命令(把 .Xresources 设为 .Xdefaults 的符号连接)为:      ln -s .Xdefaults .Xresources    现在言归正传, 编辑 .Xdefaults 或者 .Xresources 把其中关于 Emacs 的    内容设为:       Emacs.Fontset-0: -*-bitstream-medium-r-normal-*-20-*-*-*-*-*-fontset-20,\        chinese-gb2312:-*-medium-r-normal--20-*-gb2312*-*,\        mule-unicode-0100-24ff:-*-medium-r-normal--20-*-*-*-*-*-iso10646*-*,\        korean-ksc5601:-*-medium-r-normal-*-20-*-ksc5601*-*,\        chinese-cns11643-5:-*-medium-r-normal--20-*-gbk*-*,\        chinese-cns11643-6:-*-medium-r-normal--20-*-gbk*-*,\        chinese-cns11643-7:-*-medium-r-normal--20-*-gbk*-*,\        sjis:-*-medium-r-normal--20-*-jisx0208*-*	Emacs.Font: fontset-20        注意: 其中的 \ 是断行符, 它的后面(在同一行中)不要跟随任何字符(newline 除外).        上面给出的 X resources 的作用是告诉 Emacs 创建一个名为 fontset-20 的 fontset,    并且让 Emacs 把 fontset-20 作为缺省的 fontset 使用.    你可以把其中的 20 替换成其它的数字(比如 16 或者 24, 但最好选用大小一致的字体,    否则你的文本在多语种文字同时出现的情况下会显得参差不齐)以获得不同的字体大小,    注意: 上边给出的 X resources 配置很可能不符合你的系统, 其中用到的    字体你的系统未必已经提供了, 所以在此之前, 你可以用命令      xlsfonts    查看你的 X server 或者 font server 是否提供了你想要的     XLFD(X Logical Font Description) 字体.    关于这些配置的具体含义可以参看 Emacs Manual 中题为    X Resources 和 Defining Fontsets (事实上你可以此定义好几个 fontset)的部分,    这里不再赘述.    编辑完 X resources 配置文件后可以重新启动 X 会话或者使用命令      xrdb -merge ~/.Xdefaults    或者      xrdb -merge ~/.Xresources    以载入新的 X resources.    注: 关于字体安装    其实只有 GBK 字体是其中的关键, 其它字体视需要与否选择安装.    我们前面的 fontset 需要一些特定的 XLFD 字体, 可能效果不一定是最好的,    或者不对你的胃口, 但至少可以用.    gb2312         (中文): Debian 中对应的软件包为 xfonts-intl-chinese    gbk            (中文): 网上有很多关于这个的帖子, 大家自己去找吧.    iso10646    (unicode): 同上(通常如果你把上面的安装好了,这个也就有了).    jisx           (日文): Debian 中对应的软件包为 xfonts-intl-japanese    korean-ksc5601 (韩文): Debian 中对应的软件包为 xfonts-baekmuk    ascii          (英文): Debian 中对应的软件包为 ttf-bitstream-vera    上面我只列出了 Debian 中对应的软件包, 是因为我手头只有 Debian 系统,    其他诸如 Gentoo, Redhat/Fedora, Mandrake, SuSE, Slackware 等我并不    熟悉, 如果你不是 Debian 的用户请在你自己的系统上按照类似的名字寻找    相应的字体软件包, sorry了.    如果你在自己的 distro 上找到了对应的字体软件包, 请来信告诉我, 谢谢.[4] 如果你只使用 console(非GUI), 你不用关心这一步.    采用 XIM(X Input Method) 输入 GBK 汉字:    用户可以用 SCIM 和 fcitx 等目前广受欢迎的中文(SCIM 似乎还支持其它语言的输入)    XIM 输入法软件输入 GBK 汉字.    这需要配置一下用户的环境, 包括把 Locale 设置成 zh_CN.GBK 等.     具体的设置方法请参考 SCIM 或者 fcitx 自己的使用说明.    当你在 Emacs 中使用 XIM 软件作为中文输入的途径时, 你会遇到这样一个问题:    C-SPC 现在对应于 XIM 的激活而不再是 set-mark-command 了, 解决的途径有两个:    一种是让 XIM 的激活改用其它的快捷键, 可惜我没有找这方面的方法, 如果你知道    请发信告诉我.    另一种改变 set-mark-command 在 Emacs 中的 key binding, 这个很容易在 Emacs    里做到, 我们已经知道即使不作什么设置 C-@ 就已经对应着 set-mark-command 了.    如果你和我一样对 C-@ 作为 set-mark-command 的 binding 不喜欢的话, 也可以用    把 global-set-key 函数把 set-mark-command 绑定其它你喜欢的按键序列上去.    这里, 我推荐用下面的 elisp 代码把 set-mark-command 绑定到 S-SPC 上.      (global-set-key [?\S- ] 'set-mark-command)    注意: 在 terminal 模式下这个 key binding 可能不起作用, 因为你的(仿真)终端极          可能根本不识别 S-SPC 这种按键组合.[5] 启动 Emacs:    1. 在 console 上可以用命令 emacs 直接启动字符界面的 Emacs. 你需要保证你       的 console 能够显示/输入 GBK 汉字, 为此你可以使用 zhcon 或者 cce 等       console 中文环境.    2. 在 X window 环境下用命令 emacs 可以直接启动 X11 界面的 Emacs, 估计       大多数人使用的是这种情况.    3. 在 X window 环境的支持中文的仿真终端(如 crxvt, mlterm, gnome-terminal 等)       中, 用命令 emacs -nw(如果你没有使用 -nw 选项, 就会变成上一种情况) 来启动       字符界面的 Emacs. [6] 检测能否正确显示 GBK 汉字:    在重新启动 Emacs 之后使用如下命令       M-x describe-language-environment Chinese-GBK RET    如果成功的话, 你将会看到类似下面的文字:---------------8<---------------Chinese-GBK language environmentSupport for Chinese GBK character set.Sample text:  Chinese GBK 你好 妳好Input methods (default, chinese-py):Character sets:  nothing specific to Chinese-GBKCoding systems:  chinese-gbk (`Z' in mode line):	Chinese GBK encoding for GBK characters mainly usedon Chinese PCs (MIME:GBK)	(alias: chinese-gbk gbk cn-gbk chinese-gbk-unix)...---------------8<---------------    其中含有一个 GB2312 之外的 GBK 字符`女尔'.3.2 Advanced configuration3.2.1 Unicode support詹剑 为 mule-gbk 编写了 Unihan(统汉字) 的支持, 现在这已经成为 mule-gbk的一部分, 具体情况请参阅 README.unicode .注: 这部分扩展仅对目前正在开发中的 GNU Emacs(俗称 CVS Emacs) 有效. 3.2.2 MIME support关于在 Gnus 或者 Mew 中使用 GBK 的话题请参阅 README.mime .       4.  CopyingCopyright 2001-2004 SU Yong <yoyosu@ustc.edu.cn>Copyright 2004 SU Yong <yoyosu@ustc.edu.cn>, Zhan Jian <zhanjian@ustc.edu>You can redistribute mule-gbk and/or modify it under the terms of theGNU General Public License(see the file `COPYING') .苏勇, SU Yong <yoyosu@ustc.edu.cn>Sat,  7 Aug 2004 19:53:23 +0800

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -