Joe 是 unix 的一个文字编辑器,它的作者是 Joseph H. Allen ,所以其实 Joe 是 Josephs Own Editor (又或说是 Joes Own Editor )的缩写。 Red Hat 的使用者可能会对 Joe 不太熟悉,因为 Joe 不是 Red Hat 的标准软件套件, Slackware 的使用者应该会有安装 Joe 。
Joe 并不是一个重新设计的的文字编辑器, Joe 是仿造 dos 的 WordStar 文字处理器而来的,所以 Joe 的画面像极了 WordStar ,大部份的功能键与操作方式也尽量保留了 WordStar 的原汁原味。当然源代码是重新再写,而且是以 GPL 授权使用。
中文版本的 Joe 就被称为 cjoe , cjoe 与 Joe 几乎没有差别,只是 cjoe 的介面已经改成中文讯息。有很多人以为 Joe 不能输入中文,所以就改用 cjoe 。其实 Joe 可以输入中文,只要设定 Joe 处理 8 位元的字元就可以了。
下载 Joe 程序
Joe 程序码的下载网址可以在 Freshmeat 与 linuxberg 找得到。 cjoe 可以在 ftp.ifcss.org/pub/software/unix/editor/cjoe-2.8.tgz 取得。由于两者没有太大的差别,还是以介绍英文版的 Joe 为主。
以 ftp.std.com/src/editors/joe2_8.tar.Z 为例。下载之后,用 uncompress 与 tar 解开。之后用 make, make install 就可以了,很多应用程序在编释的过程中都会有一些问题,如找不到程序库等等,不过编释 Joe 是超乎异常的顺利。
我在 Linux 编释 Joe 时有些小问题,就是 usearch.h 里的 restrict 变数被当成关键字处理,所以无法编释成功。于是我查一查程序码,发现只有 usearch.c 这一个程序有用 restrict 变数。我的解决方法很简单,就是将 usearch.c 与 usearch.h 的 restrict 变数改成 restrict1 ,就没有问题了。而且我在 Sun Solaris 操作系统下编释,则不需要修改程序码,完全没有问题。
Joe 还提供了一个 dos 版的 makefile--Make.dos 。由于我手上只有 Win32 的编释器(就是 MS VC++ ),无法编释,有兴趣在 dos 下编释的读者,可以自行使用 Turbo C 或是 dos 版的 gcc 试试看。 dos 版的 Joe 会用到 bios 的中断服务,所以 Win32 的使用者必须要自行修改程序码,使用 Win32 的 API 才行,不过对我来说是太麻烦了。
Joe 还可以做简单的排版。首先以 ^TL(Left) 与 ^TR(Right) 设定左右的边界线,之后键入的文字就会在到达边界线后自动换行。使用 Joe 编写程序的人特别要在这里要注意一下,因为换行后的文字被当作是另一行而非同一行处理,而一些指令以二行处理,无法编释成功。 Joe 的排版无法处理中文。