Emacs 教程

🌙
手机阅读
本文目录结构

Emacs

Emacs(/ˈiːmæks/,源自 Editor MACroS,宏编辑器),是一个文本编辑器家族,具有强大的可扩展性,在程序员和其他以技术工作为主的计算机用户中广受欢迎。最初由 Richard Stallman 于 1975 年在 MIT 协同盖伊·史提尔二世共同完成。这一创意的灵感来源于 TECO 宏编辑器 TECMAC 和 TMACS,它们是由盖伊·史提尔二世、Dave Moon、Richard Greenblatt、Charles Frankston 等人编写的宏文本编辑器。

自诞生以来,Emacs 演化出了众多分支,其中使用最广泛的两种分别是:1984 年由理查·斯托曼发起并由他维护至 2008 年的 GNU Emacs,以及 1991 年发起的 XEmacs。XEmacs 是 GNU Emacs 的分支,至今仍保持着相当的兼容性。它们都使用了 Emacs Lisp 这种有着极强扩展性的编程语言,从而实现了包括编程、编译乃至网络浏览等等功能的扩展。

在 Unix 文化里,Emacs 是黑客们关于编辑器之战的两大主角之一,它的对手是 vi(Vim)。

XEmacs

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

其他 GNU Emacs 的派生版本

其他的派生版本,包括:

  • Meadow - 一个 Windows 下的日语版本
  • SXEmacs - Steve Youngs 实现的派生版本,基于 XEmacs
  • Aquamacs - 一个致力于与苹果的 OS X 集成的 Emacs 版本

其他 Emacs 变种

除上述编辑器以外,还有很多不基于 GNU Emacs 的编辑器,有些项目的目标是创建一个精简版的 Emacs。在 1980 年代,GNU Emacs 只能在很高端的电脑上运行,这就为精简版的 Emacs 实现的出现奠定了基础。还有一些 Emacs 变种是为了克隆一个完整的 Emacs,但是使用不同的 Lisp 方言或者其他的编程语言。比如:

  • MicroEMACS,原作者是 Dave Conroy,后来由 Daniel Lawrence 进一步开发,有很多变种。
  • Mg,原名 MicroGNUEmacs,是一个 MicroEMACS 的公共领域分支,比 MicroGNUEmacs 更加接近于 GNU Emacs。现在默认安装在 OpenBSD 上。
  • NotGNU,一个小型、快速的 Emacs 实现,是免费软件,支持 DOS、Win16、Win32 和 GNU/Linux,作者为 Julie Melbin。
  • JOVE(Jonathan’s Own Version of Emacs),Jonathan Payne 为类 Unix 系统写的 Emacs 不可编程的 Emacs 实现。
  • Zile 是 Zile Is Lossy Emacs 的递归缩写,以 C 语言编写。
  • Climacs,以 Common Lisp 编写的 Emacs 变种。
  • QEmacs,一个由 Fabrice Bellard 编写的小型编辑器,支持 UTF-8,可以快速编辑上百兆大小的文件。
  • Epsilon,一个由 Lugaru Software 开发的 Emacs 变种。支持 MS-DOS、MS-Windows、GNU/Linux、FreeBSD、O/S 2 等操作系统。它使用了一个与 C 语言语法类似的非 Lisp 语言作为扩展语言。
  • EmACT,1986 年由 Christian Jullien 从 MicroEmacs 派生而来,源代码可以在 SourceForge 获取。
  • Hemlock,最初以 Spice Lisp 实现,后来改为 Common Lisp。Hemlock 是 CMU Common Lisp 的一部分,受到了 Zmacs 的影响。

可以模拟 Emacs 的编辑器

  • Yi,以 Haskell 语言编写,内置一个 Emacs 模拟器。
  • Joe’s Own Editor 内置一个 Emacs 模拟器。
  • JED 内置一个 Emacs 模拟器。

功能特点

Emacs 不仅仅是一个编辑器,它是一个集成环境,或可称它为集成开发环境,这些功能如让用户置身于全功能的操作系统中。Emacs 可以:

  • 收发电子邮件、上新闻组(Gnus)
  • 无缝直接编辑远程文件(Tramp)
  • 通过 Telnet 登录远程主机
  • 操作壳层(M-x EShell,Term)
  • 结合 git, mercurial 等版本控制系统并直接操作(Magit,VC)
  • 上 Twitter(Twittering-mode)
  • 登陆 IRC 和朋友交流(M-x ERC,rcirc)
  • 电子数据表
  • 模拟其他编辑器,如 vi(Evil-mode)、WordStar、EDT、TPU 等
  • 编辑 Wiki (Wikipedia-mode)
  • 对多种编程语言的编辑,如 C/C++、Perl、Python、Lisp 等等
  • 调试程序,结合 GDB,EDebug 等。
  • 玩游戏
  • 计算器
  • 心理咨询(M-x doctor)
  • 煮咖啡
  • 记笔记、日记(Org-mode)
  • 管理日程,Task,待办事项(ToDo),约会等 GTD(Org-mode)
  • 写作与出版(Org-mode,Muse-mode)
  • 目录管理(Dired)
  • 文件比较、合并(Ediff)
  • 阅读 info 和 man 文档(M-x info,woman)
  • 浏览网站(M-x eww)
  • 为各种程序(TeX、LaTeX 等)提供统一的操作界面

此外 Emacs 还有如下特点:

  • 实时编辑器
  • Self-documenting
  • 可定制性
  • 可扩展性(集成 Lisp 语言)

性能

在 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)等交互方式。

AXIHE / 精选资源

浏览全部教程

面试题

学习网站

前端培训
自己甄别

前端书籍

关于朱安邦

我叫 朱安邦,阿西河的站长,在杭州。

以前是一名平面设计师,后来开始接接触前端开发,主要研究前端技术中的JS方向。

业余时间我喜欢分享和交流自己的技术,欢迎大家关注我的 Bilibili

关注我: Github / 知乎

于2021年离开前端领域,目前重心放在研究区块链上面了

我叫朱安邦,阿西河的站长

目前在杭州从事区块链周边的开发工作,机械专业,以前从事平面设计工作。

2014年底脱产在老家自学6个月的前端技术,自学期间几乎从未出过家门,最终找到了满意的前端工作。更多>

于2021年离开前端领域,目前从事区块链方面工作了