Emacs 究竟能做什么呢? Emacs 最基本的功能就是一个编辑器, 它支持所有编程语言, 包括那些你闻所未闻的编程语言。 在编程方面Emacs的功能是非常全面的, 从基本的语法高亮、语法式结构编辑、代码浏览管理、到智能地代码补全、实时语法检测等高级功能都提供全面的支持。 除了编程语言方面的支持外, Emacs几乎是对所有文本世界都是非常友好的, 它可以随意浏览PDF、PS、CHM、LaTeX、Markdown、Man、RFC等各种文件, 而这些都只在一个编辑器就能完成, 你不需要打开各种浏览器, 一直在各种窗口中切换。 Emacs如果只是编辑功能, 我相信世界上不会有这么多编程大神来膜拜。 Emacs本质是一个用Elisp构建的插件框架、通过热替换的机制在运行时动态的修改和扩展自己。 热替换的机制就是你不用像其他软件那样需要漫长的编译等待和状态重建来扩展, 你在正常使用Emacs的情况下,只需编写新的Elisp代码, 保存并重载(reload)一下就即时生效了。对热替换通俗一点的比喻: 你可以把Emacs比作一个智能机器人, 在运行的时候发现机器人的双手坏掉了或者不够强大, 在*不断电*的情况下, 机器人自己对自己进行扩展并投入使用。通过热替换的机制, Emacs可以以数十倍于任何其他IDE和编辑器的开发效率来快速扩充自己, 加上 Elisp 那近乎意识流般行云流水的编程手感, 全球的Emacs黑客每天都在通过Elisp来编写和发布自己的插件。 基于Emacs强大的插件体系, Emacs能做到以下非编辑器的功能(现在只是例子, 以后我会逐条解释): * WebKit 浏览器, 你能在Emacs中编写代码, 边通过浏览器查阅各种资料 * EMMS 强大的音乐播放管理器, 从音乐播放、播放列表、音乐电台到专辑浏览、Tag编辑功能一应俱全 * Dired 文件管理器, 键盘风格的文件管理功能, 通过Dired内置的标记、搜索、文本编辑模式等强大功能, 你能通过几秒钟魔术般的表演做到别人需要几天才能做完的事情 * Org 任务时间管理工具, 这个星球最强大的任务时间管理工具, 你可以基于文本式的对项目进行管理和时间追踪, 虽然是纯文本, 但是能轻松嵌入多媒体、外部连接、电子表格等强大工具, 而这些只包含在一个充满奇幻想象力的 Org 格式中 * 聊天通讯软件, 强大到变态的IRC聊天功能, 自动回复、自动翻译、甚至是语音读出朋友的消息;通过简单的扩展还能轻松支持XMPP协议和其他软件聊天(比如 gtalk) * 新闻阅读器, RSS、Atom格式新闻尽收眼底, again, 你不用为了看新闻来回切窗口 * 终端模拟器, 你再也不用在编写代码的时候切到外部终端中看输出结果, 你甚至可以在终端模拟器中嵌入 vi, 或者在终端中再嵌入 Emacs, 然后在Emacs再打开终端再嵌入Emacs, 哈哈 ... 玩够了没? * Gnus, 统一的阅读邮件和邮件列表的神器, Gnus基于线索式的邮件管理让你随时随地保持清新的上下文来回复好友邮件 * Wiki编辑器, 通过 Yaoddmuse 几乎能支持所有的Wiki格式, 实时语法高亮, 你不用担心保存以后确发现格式错了 * 数学计算器, 从基本的计算器到高级的数学公式演算, 甚至实时输出3D演算结果 * 翻译软件, 所有Emacs可以访问到的单词和语句, 都可以快速翻译成你的母语 * 语音朗读, 通过 festival 或者其他发音引擎, 你可以自由的朗读emacs可以看到的任何数据, 我有时候经常边写程序边听IRC聊天 * 还有很多小功能, 比如查看日历、玩俄罗斯方块、好友信息管理等 .... 太多太多了, 上面只是列出Emacs比较强大的通用功能。 Emacs最大魅力就是它只提供基础的框架和插件体系, 而至于它能做什么, 只有想象力才是它的极限。