我的FC5发行版中的Emacs版本是21, 是现在很常见的版本, 对于中文等语言采用内部字符表示方案,也就是所谓的 Emacs Mule 表示方案,这个方案是以iso2022为基础,并进行了适当的扩充。现在这个方案已经不敷使用,例如无法支持GBK和GB18030,其编码空间已经基本耗尽。因此,要想使用GBK扩充的汉字,就得用mule-gbk软件包。

Emacs22沿用了Emacs21的方案,但在其它方面,Emacs22对Emacs21进行了很多改进,修正了很多bug,预计在短时间内,Emacs22将会是Emacs的最新release版本。

Emacs23,又称为emacs-unicode-2 branch,它对Emacs内部字符的表示方案做了一次大手术:它以utf8编码方案为基础,并进行了适当的扩充和调整。目前这个手术尚未完成,bug比较多,但已基本达到了可用的程度,而且对中文(GBK/GB18030)的支持很好,不用再安装mule-gbk了。




我愿意使用最新的

Emacs 23 ,即便它不那么稳定。




可以用cvs从tsinghua的ftp上将

Emacs 23 源码拉下来:



$ cvs -d :pserver:anonymous@ftp.tsinghua.edu.cn/cvsroot co -r emacs-unicode-2 -d emacs23 cvs.savannah.gnu.org/emacs/emacs


借这个机会稍微学一点CVS访问源码仓库的知识。现在,许多GNU/Linux项目的互联网协作开发模式主要是使用了CVS强大的项目文件管理功能。上面正是利用了CVS工具远程访问tsinghua网站上的CVS仓库。

  • 对于大部分的远程CVS仓库,可以使用pserver或external技术访问。在pserver模式下,CVS在仓库计算机上运行一个服
    务器进程,所有客户都连接到该进程。在这种方式下,CVS就像一个web服务器或ftp服务器,通常用于客户远程匿名访问。至于external模式,由
    于我对CVS很不熟悉,言多必失,不谈了。
  • 在cvs中,用户的概念是:访问或修改仓库的人。不管你是用pserver还是external访问,都需要一个id才能访问cvs仓库。
  • cvs使用类似url的字符串来指示仓库位置。这个字串由访问类型、用户名、服务器名及仓库位置等构成,常称这个字串为CVSROOT。如下载Emacs时,字串,:pserver:anonymous@ftp.tsinghua.edu.cn/cvsroot中,类型是pserver,用户名是anonymous,服务器名是ftp.tsinghua.edu.cn/cvsroot。
  • cvs -d:pserver:anonymous@ftp.tsinghua.edu.cn/cvsroot,其中的-d选项用于指示cvs要访问的仓库位置。
  • co参数,表示文件签出,-r表示文件版本号,后面紧跟着-d参数指明要将文件签出到本地机器目录中。
  • 最后的cvs.savannah.gnu.org/emacs/emacs,应该是指定仓库中要签出的项目。


学会这一句命令,以后就可以随时从这个仓库中下载最近更新过的程序文件,即仅下载修改过的程序文件。我们应当感谢这种互联网协作开发模式的存在,cvs软件仓库中的东西每天都可能会有新东西添加进去。


我是在/usr/local/src目录下使用cvs下载的。因此,下载后的emacs源码包目录的绝对路径/usr/local/src/emacs23。在数次重装系统后,我得到的一条教训是——凡自行编译安装的软件包,最好都在/usr/local中进行。此举便于备份。

下面开始安装,且不管网上那些安装教程,先试试emacs23目录下的INSTALL文件中所指示的简单安装步骤:

  1. cd /usr/local/src/eamcs23
  2. ./configure
  3. make
  4. make完毕后,会在src子目录下生成emacs程序,试运行一下:src/emacs -q,如果运行成功,那么就进行下一步安装。
  5. make install
  6. make clean

通过以上步骤,我安装成功。也许你的不成功,那么就再仔细看INSTALL吧。


安装完毕后,运行一下,发现Emacs的运行环境是:i686-pc-linux-gnu,X toolkit,Xaw3d scroll bars。窗口有些难看。如果你很在意这个,那么在configure时,可以指定选项--with-x-toolkit=gtk。但该选项要求你必须安装了gtk+2.4或更新版本。我的系统刚装上,还没来得及装gtk+库,就不试了。

这个Emacs23版本默认的安装路径是/usr/local,如果你不喜欢它被拆成好几块,分别存在以下目录中:
/usr/local/bin
/usr/local/share/emacs/VERSION/lisp
/usr/local/share/emacs/VERSION/etc
/usr/local/libexec/emacs/VERSION/CONFIGURATION-NAME
/usr/local/info
/usr/local/man/man1

你可以在/usr/local下单独建立一个emacs23,在配置时,configure --prefix=usr/local/eamcs23。我没作尝试。感觉没大有必要,因为那样作,势必要添加新的环境变量。只要记录安装后的软件包由哪些子目录构成即可。独立存放的好处仅在于便于删除,好在我装东西之前,深思熟虑我是不是需要它,装上之后,基本就不再怎么动它了。