在屏幕上读书--用XEmacs阅读电子文本
作者[email protected]\" class=green>Larry Ayers翻译[email protected]\" class=green>gaia
简介
在去年冬天的一段风雪交加的日子里,我极其渴望读点新东西.房间里那堆书看 上去索然无味;想去镇上图书馆借书看,然而积雪使路况十分糟糕,难以成行.
我曾听说有个Gutenberg计划,那是一个合作项目,致力于让人们能够免费获得数字化形式的公共域 (public-domain)文学作品,不过我还从未得到过任何一 本电子书.通过网上搜索我发现了其中一个Gutenberg站点, 在那里我惊奇 地发现了种类丰富的小说和其它文学作品,所有的都是无数志愿者通过手工输入或从印刷品扫描得到的.我挑了一本电子书来读,也很想知道看电子书会不会把眼睛弄得很疲劳.
第一印象
这些文件是zip压缩的;当在Linux下解包时,每一行结尾都出现那些DOS文件系统的^M换行符.Info Zip的unzip工具会自动从文件中除去它们, 只要在命令行上使用了-a选项,比如下面这个例子: unzip -a [filename].然而如果你用Emacs自己的jka-compress软件包处理压缩的打包文件,unzip工具就不是十分有用;jka-compress会在内部调用zip及unzip,在打开和关闭文件时自动把文件解压缩/压缩.在这种情况下,我所见过的最简单的把DOS格式的行结尾转换为UNIX格式的方法是一对Lisp函数,由Earl Stutes在Linux公报第十期发表;我把它们抄在下面:
(defun dos-unix ()
(interactive)
(goto-char (point-min))
(while (search-forward \"\\r\" nil t) (replace-match \"\")))
(defun unix-dos ()
(interactive)
(goto-char (point-min))
(while (search-forward \"\\n\" nil t) (replace-match \"\\r\\n\")))
把这两个函数加到你的 .emacs文件里,只要用 M-x dos-unix就可以对文件进行转换.如果你经常用它,可以把它绑到热键上.
好了,现在文件更\"可读\"了;不过要想阅读整本书,其它的问题还不少.首先是很难在文件中找到上次读到什么地方;其次,在载入文件时要是不用输入整个文件名就好了.两种XEmacs的模式对此将大有帮助.
有用的模式
要想记录你读到了什么位置,显而易见的方法就是模仿读纸书时所用的 书签,即Emacs的书签功能.作好的书签不会自动更新,但这一缺点可以用 Karl Hegbloom的Where-Was-I数据库来弥补.这个模式只对单个文件起作用 ,因为对于多个文件,你的\"位置\"并非十分重要.输入 M-x tog[TAB] wh[TAB]就可以激活这个模式.其中的tab键是用来自动补齐表达式的;这比输入整个命令M-x toggle where-was-i要快多了 .一旦激活这个模式,在关闭或kill一个文件时当前的位置会被保存在你的根目录的一个二进制数据库里.以后再打开这个文件,光标就会出现在你上次中 止时的位置.这对于一本书那么大的文件尤其方便,它们多半超过 1M.Hegbloom的这个软件包被包括在XEmacs的最近的版本中;在使用新的 软件包系统的当前Beta版里它成了edit-utils软件包的一部分.
我推荐的另一个XEmacs模式是Juergen Nickelsen的recent-files.el,也是包含在XEmacs的edit-utils 软件包里.要想激活这种新颖的模式,把下面这几行加到你的 .emacs文件里:
(load \"recent-files\")
(recent-files-initialize)
这个模式在菜单栏里新添了一个菜单,其中包含两个子菜单.第一个子菜单列出 你过去曾经用XEmacs打开的一些文件;这些位置逐渐会被新的文件名取代.另一个子菜单里的条目则是长期的,是你经常要编辑的文件,比如某些设置文件 或日志.在菜单里还有选项能让临时的和长期的条目互相转换.
拥有了这两种优秀的模式,XEmacs基本上可算作一种舒适的电子书阅读器.进一步的改进可以用TrueType字体及字体服务器如xfstt;我发现在被动阅读时这 些字体看上去更舒服.
另一种有用的模式是我在Linux公报34期里介绍的字典模式中的一种.我发现我更喜欢从联机字典而不是纸做的字典里查找陌生的单词.毕竟敲几下键盘就能找到一个词是相当方便的.
结论
在电脑的显示质量极大提高之前,长时间的阅读还是读纸上文本更好.不过,我已 经津津有味地读完了几本Gutenberg电子书,其中很多我从未在图书馆里找到过.能从书里剪切和粘贴是很有用的,--此外你还能纠正书中的输入错误!
发布人:netbull 来自:Linux公报