# Emacs 是什么？

虽然 vi 和它的克隆版本都是功能强大的编辑器，但是它们并没有很好的可扩展性。不过 `vim` 倒是个例外，`vim` 由 vi 发展而来，兼具了可扩展性和 vi 的灵活轻盈。尽管有了 `vim`，可很多用户还是喜欢更“重量级”，可扩展性更强的编辑器，他们选择了 Emacs。

Emacs 的可扩展性突破天际。除了最底层用 C 语言写成，Emacs 的其他部分都是用一种解释型的 Lisp 语言写的。这么做的结果就是 Emacs 的一切都可以由你来控制，你可以配置它，更可以随心所欲的扩展它（在网上能找到很多优秀的 Emacs 教程）。人们写了各种各样的用来扩展 Emacs 的 Emacs Lisp 程序，从某种稀奇古怪语言的语法高亮，到内建一个终端，应有尽有。你一定想不到，Emacs 里甚至有一个模拟 vi 的模式（叫做 viper），所以你可以在使用 vi 编辑模式的同时，获得 Emacs 的力量。

与 vi 相同的是，Emacs 也有很多版本（不妨叫它们“emacsen”），不过最常用的版本还是 GNU Emacs（Slackware 只包含了这一版）。当人们提到“Emacs”时，几乎总是在说 GNU Emacs。

与 vi 不同的是，Emacs 默认状态下更像一个传统的编辑器，也就是说不必为了使用快捷键而去一遍又一遍地切换模式。在 vi 中为了编辑文件，你必须学习每个模式都是干什么的，编辑时还要记住你当前处于什么模式，而在 Emacs 中，你要做的就是打开文件，开始编辑。
