描述
GNU Emacs 是 Emacs, 的版本之一,是由 Emacs, 的原始版本(PDP-10)的作者Richard Stallman所编写的。
GNU Emacs的主要文档在GNU Emacs手册中,你可以用Info(Emacs的一个子系统)以行方式去读。请在那里查看完全的和最新的文档。本帮助页的更新依赖于志愿人员;Emacs 的维护人员的首要目标是使使用能本帮助页面尽可能少地占用其它更有用的项目的时间。
GNU Emacs 包含了其它 Emacs 编辑器所拥有的全部功能。由于它的编辑命令是用Lisp写的,因此很容易扩展。
Emacs 有一个扩展的交互帮助工具,但该工具假设你能熟练地使用 Emacs 窗口和缓冲区。CTRL-h (退格或CTRL-h) 可以进入该帮助工具。 Help Tutorial(帮助指南,CTRL-h t) 调用一个交互式的指南以帮助初学者在很短的时间内了解 Emacs 的基本知识。Help Apropos (CTRL-h a) 帮助你找到一个命令并给出其功能说明,Help Character (字符帮助,CTRL-h c) 描述一个给定的字符的作用,Help Function (函数帮助,CTRL-h f) 描述一个指定名称的Lisp 函数。
Emacs 的Undo(恢复功能)可以取消最近几步对缓冲区所做的修改,因此很容易从编辑错误中恢复
GNU Emacs 的许多特殊的包可以处理邮件读取(RMail)和邮件发送
(Mail),大纲编辑 (Outline),编译(Compile), 在 Emacs 窗口中运行shell (Shell), 运行Lisp 的read-eval-print 循环(Lisp-Interaction-Mode), 以及自动修正(Doctor)。
还有一个扩充的参考手册,但是其它版本的 Emacs 用户即使没有它,要适应GNU Emacs也不会有什么困难。而Emacs的新用户通过学习指南和使用自身文档特性,很快就能够使用GNU Emacs的基本功能。
Emacs选项
以下的选项是很常用的:
file
编辑 文件。
+number
转到由 number 指定的行(在"+"和数字当中不要加入空格)。
-q
不载入初始文件。
-u user
载入 user 的初始文件。
-t file
使用指定的 file 文件作为终端来代替stdin/stdout。该项必须作为命令行的第一个参数来说明。
以下的选项是面向lisp的 (这些选项按照给定的顺序处理):
-f function
执行lisp函数 function 。
-l file
装入文件 file 中的Lisp代码。
Emacs 作为批处理编辑器来运行时,以下选项是有用的:
-batch
批处理模式编辑。 编辑器将把消息送至stderr(注1)。这个选项必须位于参数列表的第一位。必须用-l和-f选项来指明要执行的文件和要调用的函数。
-kill
在批处理模式下退出Emacs Emacs 。
在X Window下使用Emacs
Emacs 已经被设计得能在X Window系统下很好地工作。如果在X Window下运行 Emacs ,将创建其自己的X Window来显示。这是因为你也许会将Emacs编辑器作为后台进程来启动,并能够继续使用原来的窗口。
Emacs 在启动时能带以下X命令开关:
-name name
指定初始的 Emacs 窗口的名字。这使得能象窗口标题一样查询X资源。
-title name
指定起始X窗口的标题。
-r
反白显示 Emacs 窗口。
-i
当 Emacs 窗口图标化时,使用"厨房水槽"位图图标。
-font font, -fn font
将 Emacs 窗口字体设置为指定的字体 font 。在 /usr/lib/X11/fonts 路径下可以找到不同的 X 字体。注意: Emacs 只接受固定宽度的字体。在X11第四版字体命名协议下,若字体名的第11个域的值是"m"或"c",则该字体是固定宽度的字体。此外,若字体名拥有 宽x高 的形式,它一般也是 固定 宽度字体。关于更多信息,参见xlsfonts(1)。 在指定字体时,别忘了在开关和字体名之间需要一个空格。
-b pixels
设置 Emacs 窗口边框宽度为 pixels 指定的点数。缺省值是窗口每边宽为1点。
-ib pixels
设置Emacs窗口内部边框宽度为 pixels 指定的点数。缺省值是窗口每边填充1点。
-geometry geometry
按照给定的值设置 Emacs Emacs窗口的宽,高及位置。几何参数的指定应符合标准X格式,关于更多信息,参见 X(1) 。宽和高用字符来指定,缺省值是80 x 24。
-fg color
在彩色显示下,设置文本的颜色。有效的颜色名列表见 /usr/lib/X11/rgb.txt 。
-bg color
在彩色显示下,设置窗口背景的颜色。
-bd color
在彩色显示下,设置窗口边框的颜色。
-cr color
在彩色显示下,设置窗口文本光标的颜色。
-ms color
在彩色显示下,设置窗口鼠标光标的颜色。
-d displayname, -display displayname
在由 displayname. 指定的显示器上创建 Emacs 窗口。必须是在命令行中指定的第一个选项。
-nw
告诉 Emacs 不使用其到 X 的特定界面。如果在从 xterm(1) 窗口调用 Emacs 时,使用此开关,则在该窗口中打开显示器。这必须是命令行中指定的第一个选项。
您可以在 .Xresources 文件(请参阅 xrdb(1) )中为 Emacs 窗口设置 X 缺省值。请使用下列格式:
emacs.keyword:value
其中 value(值) 指定 keyword(关键字) 的缺省值。 Emacs 允许您为下列关键字设置缺省值:
font (Font 类)
设置窗口的文本字体。
reverseVideo (ReverseVideo 类)
如果把 reverseVideo 的值设置为 ,则反白显示窗口。
bitmapIcon ( BitmapIcon 类)
如果 bitmapIcon 的值设置为 ,则窗口将图符化为凹入状。
borderWidth (BorderWidth 类)
设置窗口的边框宽度(以 pixel 为单位)。
internalBorder (BorderWidth 类)
设置窗口的内部边框宽度(以 pixel 为单位)。
foreground (Foreground 类)
对于彩色显示器,设置窗口的文本颜色。
background (Background 类)
对于彩色显示器,设置窗口的背景颜色。
borderColor (BorderColor 类)
对于彩色显示器,设置窗口的边框颜色。
cursorColor (Foreground ?
对于彩色显示器,设置窗口文本光标的颜色。
pointerColor (Foreground 类)
对于彩色显示器,设置窗口鼠标光标的颜色。
geometry (Geometry 类)
设置 Emacs 窗口的几何大小(如上所述)。
title (Title 类)
设置 Emacs 窗口的标题。
iconName (Title 类)
设置 Emacs 窗口图符的图符名称。
如果你在使用黑白显示器时试图设置颜色值,则窗口的特征将缺省为:前景色将设置为黑色,背景色将设置为白色,边框颜色将设置为灰色,而文本和鼠标光标将设置为黑色。
使用鼠标
下面列出在X11下 Emacs 窗口的鼠标按钮的捆绑功能。
左键 定点。
中键 粘贴文本
右键 把文本剪贴到X的剪贴缓冲区
SHIFT-中键 把文本剪贴到X的剪贴缓冲区。
SHIFT-右键 粘贴文本
CTRL-中键 把文本剪贴到X的剪贴缓冲区并把它删除
CTRL-右键 选择窗口并分割它成两个窗口,和输入CTRL-X 2一样
CTRL-SHIFT-左键 对X缓冲区菜单操作,挂起按钮和键盘,等待菜单出现,
选择缓冲区和释放它。把鼠标移离菜单和释放操作。
CTRL-SHIFT-中键 弹出X菜单帮助索引Emacs帮助。
CTRL-SHIFT-右键 用鼠标选择窗口并删除所有其他窗口,和输入CTRL-X 1一样。
手册
你可以从开发GNU软件的自由软件基金会获得GNU Emacs手册的拷贝。
要获得信息仔细查看文件ORDERS。
你本地的Emacs维护也有有效的拷贝。对于所有从FSF获得的软件和印刷品,每个人都有权制造和发布Emacs手册的副本。
手册的TeX源文档也被包含在Emacs源代码发布中。
文件
/usr/local/info - 通过Info文档浏览器(Emacs的一个子系统)查阅的文件。
现在还没有太多的Unix在以此为文档,但Emacs参考手册的完整文本以便利的树结构形式包含于其中。 /usr/local/share/emacs/ $VERSION/src - C源文件和目标文件。 /usr/local/share/emacs/ $VERSION/lisp - 定义了大部分编辑命令的Lisp源文件和编译后的文件。 有些已经装入了;其它的则在使用时自动从本目录中装入。 /usr/local/share/emacs/ $VERSION/etc - 与GNU Emacs一同使用的各种程序,还有一些文件的信息。 /usr/local/share/emacs/ $VERSION/etc/DOC.* - 包含了Lisp原语和GNU Emacs 的预装入Lisp函数的文档字符串。 它们被储存在这里以减小Emacs的体积。 /usr/local/share/emacs/ $VERSION/etc/OTHER.EMACSES 讨论GNU Emacs与其它版本的Emacs之间的不同。
/usr/local/share/emacs/ $VERSION/etc/SERVICE 列举为帮助GNU Emacs的用户提供各种服务的人们,包括教学、疑难解答、移植和定制。
这些文件还含有对那些希望用Emacs Lisp扩展语言编写程序的人有用的信息,该语言含没有完整的文档。 /usr/local/com/emacs/lock - 为使用Emacs修改的所有文件保存锁文件,以防止由两个用户在同时对一个文件进行修改。 /usr/lib/X11/rgb.txt - 合法的X颜色名的列表。
臭虫
此处有一个邮件列表,因特网上的bug-gnu-emacs@prep.ai.mit.edu,用于报告Emacs的臭虫和修补。但在报告作为一个臭虫的某件事之前,请尽量肯定它真是一个臭虫,而不是一个误会或一个故意的特性。我们要求你阅读在此参考手册末尾附近的"Reporting
Emacs Bugs"(报告 Emacs 臭虫)章节(或Info系统),用于提示如何和什么时候报告臭虫。 还有,在每个你发送的臭虫报告中包含你所运行的Emacs的版本号。 不要期望对一个错误报告给出个人的答案。报告错误的目的是为了大家在下一个版本中可以修复它。 对个人来说,我们可以去参考服务文件(见上)的一个列表。 除非是向这个邮件列表报告臭虫,请不要发任何东西到这里来。你可以将申请加入邮件列表的请求寄到 info-gnu-emacs-request@prep.ai.mit.edu(或者相应的UUDP地址)中去。关于Emacs(UNIX编辑程序宏指令)邮件列表的详情,请阅读文件
/usr/local/emacs/etc/MAILINGLISTS。 如果错误是孤立的,往往是可以修复的。因此如果你对报道那些错误感兴趣的话,你可以很容易将它复制出来。
我所知道的一些错误是:在一些UNIX版本中,SHELL不能很好的和应用程序一起工作。
非限制的
Emacs 是免费的; 任何人都可以按照与每个 Emacs 的副本在一起的 Emacs General Public License中陈述的条款把 Emacs 的副本分发给任何人,该许可证的也出现在参考手册中。
Emacs 的副本有时与UNIX系统在一起打包进行分发,但是它永远不会包含在任何覆盖这些操作系统的许可证的范围之内。象这样违反了条款的包含物是被允许的,事实上,General Public License的主要目的是让那些分发 Emacs. 的人可以免受更多的干扰。
Richard Stallman鼓励你改善和扩展Emacs,鼓励你把你对GNU库的扩展贡献给GNU库。最后GNU(Gnus Not Unix)将成为伯克利UNIX最好的替代品。每个人都可以自由的使用,拷贝,研究和更改GNU的系统。
参见
X(1), xlsfonts(1), xterm(1), xrdb(1)
作者
Emacs 是由Richard Stallman和自由软件基金会合作完成的。 Joachim Martillo和Robert Krawitz为系统加入了X界面。