在Linux上,我经常使用GNU Emacs编辑器来编写新程序的源代码。很久以前,当我还是一个本科生的时候,我就学会了GNU Emacs,而且我还保留了所有键盘快捷键的 "手指记忆"。
当我在1994年开始研究FreeDOS时,我想加入一个类似Emacs的文本编辑器。你可以找到许多与Emacs类似的编辑器,如MicroEmacs,但这些都需要一些快捷键来适应DOS的16位地址空间。然而,我非常高兴地发现了Freemacs,作者是Russell "Russ" Nelson。
你可以在FreeDOS 1.3 RC4中找到Freemacs,在奖励光盘上。你可以使用FDIMPLES来安装这个软件包,它将安装到\APPS\EMACS 。
初始设置
第一次运行 Freemacs 时,编辑器需要将所有的设置文件 "编译 "成 Freemacs 可以快速处理的形式。这将需要几分钟的时间,取决于你的系统速度和内存,但幸运的是,你只需要做一次。
Freemacs实际上分两次处理编辑器文件。当Freemacs成功地完成第一遍时,它会提示你重新启动编辑器,以便它能完成处理。所以不要惊讶于这个过程似乎又开始了--这只是编译过程的 "第二部分"。
使用Freemacs
要用Freemacs编辑一个文件,要用文本文件作为命令行的一个参数来启动这个程序。例如,emacs readme.doc 将打开 Readme 文件以便在 Freemacs 中编辑。在命令行输入emacs ,没有任何选项,将在Freemacs中打开一个空的 "划痕 "缓冲区。
或者,你可以在没有任何命令行选项的情况下启动Freemacs,并使用Emacs的快捷键C-x C-f(或M-xfind-file )。然后Freemacs会提示你有一个新的文件要加载到编辑器中。快捷键的前缀C-意味着你应该按下Ctrl键和其他的键,所以C-x是Ctrl和x键一起。而M-x是"按'Meta'键(通常是Esc)然后按x"的速记。
Freemacs会自动检测文件类型并尝试加载正确的支持。例如,打开一个C源文件也会将Freemacs设置为 "C模式"。
如果你也使用GNU Emacs(像我一样),那么你可能很想让Freemacs与GNU Emacs使用的C语言缩进相匹配(2个空格)。 以下是如何将Freemacs设置为C模式下使用2个空格。
- 在Freemacs中打开一个C语言源文件。
- 输入M-x
edit-options来编辑Freemacs设置。 - 使用设置将 "C-race-offset "和 "C-indent-level "都改为2。
- 保存并退出Freemacs;你会被提示保存设置。
一些限制
Freemacs的大部分其他部分的操作与GNU Emacs类似。如果你已经熟悉了GNU Emacs,你应该在Freemacs中感到自如。然而,Freemacs确实有一些限制,你可能需要知道。
扩展语言不是LISP。 Linux上的GNU Emacs和FreeDOS上的Freemacs之间最大的区别是Freemacs使用了不同的扩展语言。GNU Emacs实现了一个类似LISP的解释器,而Freemacs实现了一种不同的扩展语言,称为MINT,基于字符串处理语言TRAC。MINT "这个名字是一个缩写,意思是 "MINT不是TRAC"。
你不应该期望在Freemacs中评估LISP代码。MINT语言与LISP完全不同。关于MINT的更多信息,请参阅参考手册。我们通过Ibiblio上的FreeDOS文件档案提供完整的文档,地址是/freedos/files/edit/emacs/docs。特别是,MINT语言在mint.txt和mint2.txt中定义。
Freemacs不能打开大于64kb的文件。 这是许多程序中常见的限制。64kb是不利用扩展内存的程序的数据空间的最大尺寸。
没有 "撤销 "功能。 在编辑时要小心。如果你犯了一个错误,你将不得不重新编辑你的文件,让它回到旧版本。另外,要尽早和经常保存。对于非常大的错误,你最好的办法可能是放弃你在Freemacs中编辑的版本,并加载最后保存的版本。
剩下的就看你自己了你可以在Ibiblio的/freedos/files/edit/emacs/docs找到更多关于Freemacs的信息。关于Freemacs的快速入门指南,请阅读quickie.txt。完整的手册在tutorial.txt中。