Emacs

其他早期实现

后来几年，程序员们写了很多类Emacs的编辑器。其中包括Michael McMahon和Daniel Weinreb为Lisp机器写的EINE（“EINE Is Not EMACS”）和ZWEI（“ZWEI Was EINE Initially”），还有Owen Theodore Anderson写的Sine。Weinreb的EINE是第一个以Lisp实现的Emacs。1978年，Bernard Greenberg写了Multics Emacs，大部分由Multics Lisp实现。Multics Emacs后来由Richard Soley维护。很多Emacs的变种，包括GNU Emacs，后来都将Lisp作为自己的扩展语言。
詹姆斯·高斯林，在1981年写了Gosling Emacs，他后来还发明了NeWS和Java。作为第一个在Unix上运行的类Emacs编辑器，Gosling Emacs由C语言实现，并且以Mocklisp作为扩展语言。1984年，Gosling Emacs成为专有软件。

XEmacs

1991年，Lucid公司的Jamie Zawinski等人以GNU Emacs 19的一个早期alpha版为基础，添加了一些新的特性，开发出Lucid Emacs。很快，Lucid Emacs的开发与GNU Emacs渐行渐远，最终双方的团队放弃了将两者合并的努力。Lucid Emacs被重命名为XEmacs；至今为止，XEmacs仍然是最流行的Emacs变种之一。

著作权

Emacs的著作权遵从GNU通用公共许可证，赋予他人自由地对包括C和Lisp在内的Emacs源文件进行修改和再发行的权利。较早版本的GNU Emacs文档是在一种点对点（ad-hoc）的许可下发布的，要求所有修改过的副本都要包含某些特定的文字。例如，GNU Emacs的用户手册中必须包含如何获得GNU Emacs的说明，以及理查·斯托曼的文章——《GNU宣言》。作为较早版本的GNU Emacs的分支，XEmacs的手册也采用相同的使用许可。较新版本的GNU Emacs文档则采用《GNU自由文档许可证》，以使用“不变段落”（"invariant sections"）的形式包含有同样的文本，并且要求这些文档自我声明为“GNU手册”（GNU Manuals）。

性能

在GNU Emacs刚诞生时，它比相同系统上的其他编辑器运行速度要慢很多，但是现代的计算机可以很快地运行GNU Emacs。早期的GNU Emacs可以处理256 MB以下的文件，GNU Emacs 23.2将这一限制提升到512 MB，而在64位系统的GNU Emacs 24中，这个限制是大约2 EiB。

平台

Emacs是当前世界上最具可移植性的重要软件之一，能够在当前绝大多数操作系统上运行，包括各种类Unix系统（GNU/Linux、FreeBSD、NetBSD、OpenBSD、Solaris、AIX、OS X等）、MS-DOS、Microsoft Windows等。甚至在Android和诺基亚的Maemo上，Emacs也能运行。
GNU Emacs既可以在文本终端也可以在图形用户界面环境下运行。在类Unix系统上，GNU Emacs使用X-Window产生GUI，或者直接使用“框架”（widget toolkit），例如Motif、LessTif或GTK+等等。Emacs也能够利用OS X和Microsoft Windows的本地图形系统产生GUI。用GUI环境下的Emacs能提供菜单栏（Menubar）、工具栏（toolbar）、滚动条以及环境菜单（context menu）等交互方式。

次模式

Emacs还能进一步定义“次模式”（minor mode），用以深度定制Emacs。一个GNU Emacs的缓冲区（buffer）只能关联于一种主模式，却能同时关联多个次模式。比如，编写C语言的主模式可以同时定义多个次模式，每个次模式有着不同的缩进风格（indent style）。

国际化

Emacs支持对多种文字的文本编辑，加上对多种字符集、字母系统、书写系统，以及不同文化的书写习惯都提供了支持，使得世界上大多数语言的用户都能通过Emacs进行文本处理。Emacs还能通过调用诸如Aspell这样的外部程序，实现多种语言的拼写检查。GNU Emacs 24添加了对双向文字的支持。
Emacs支持包括UTF-8在内的诸多编码系统。GNU Emacs从23开始以UTF-8作为自身的编码系统，而在之前的版本，Emacs拥有一种特殊的内部编码系统MULE（MULti-language Environment），在读写文件时进行编码和解码。XEmacs编码系统和GNU Emacs相似，但具体的实现方法不完全一样。
一个叫做Emacspeak的子系统可以通过音频反馈，让拥有视觉障碍的用户和盲人用户使用Emacs。

小缓冲

Emacs使用“小缓冲”（通常在最下面一行）显示信息提示以及输入命令和命令参数。在合适的情况下，小缓冲支持使用制表键或空格键补全。每个frame只有一个小缓冲。

文件管理与显示

Emacs将文本存放在缓冲区中。用户可以创建新的缓冲区，也可以关闭不需要的缓冲区，Emacs可以同时存在很多缓冲区。大部分的缓冲区的文本来自文本文件，用户可以编辑缓冲区的内容，并且保存到磁盘上。缓冲区也可以保存临时文本，比如“help”库显示的文档字符串。