1.Emacs的历史

  • - 2.Emacs的作用—编辑文本(1)
  • - 3.Emacs的作用—编辑文本(2)
  • - 4.Emacs的作用—编辑文本(3)
  • - 5.Emacs的作用—编辑程序(1)
  • - 6.Emacs的作用—编辑程序(2)
  • - 7.Emacs的作用—作为其他程序的界面
  • - 8.Emacs的作用—作为操作系统(1)
  • - 9.Emacs的作用—作为操作系统(2)
  • - 10.Emacs的作用—煮咖啡;相关资料
  • -

编者按:这个世界最强是个怎么样的强法呢?一说:Emacs是一种“信仰”。另说:世界上的程序员分三种,一种使用Emacs,一种使用vim,剩余的是其它。(完全无视其他编辑器的存在……)

  来看看这个被人奉为信仰、可以煮咖啡的编辑器是个什么样子。

一、Emacs的历史

  Emacs程序的最初版本是由RichardStallman在1975年写成(年龄比很多读者都大吧 :) )。之后其衍生版本众多。目前使用得最多的两个版本是RichardStallman在1984年开发的一个版本——GNUEmacs和1991年由JamieZawinski写成的XEmacs。

  看看他的简称你会头晕。

  E. M. A. C. S.

  • Emacs Makes A Computer Slow
  • Escape Meta Alt Control Shift
  • Emacs Makers Are Crazy Sickos
  • Emacs Makes All Computing Simple
  • Emacs Makefiles Annihilate C-Shells
  • Emacs Manuals Always Cause Senility
  • Emacs May Allow Customized Screwups
  • Emacs Manuals Are Cryptic and Surreal
  • Eventually Munches All Computer Storage
  • Eight Megabytes And Constantly Swapping
  • Elsewhere Maybe All Commands are Simple
  • Excellent Manuals Are Clearly Suppressed
  • Emacs May Alienate Clients and Supporters
  • Except by Middle Aged Computer Scientists
  • Extended Macros Are Considered Superfluous
  • Every Mode Accelerates Creation of Software
  • Each Manual's Audience is Completely Stupefied
  • Exceptionally Mediocre Algorithm for Computer Scientists
  • Easily Maintained with the Assistance of Chemical Solutions
  • Eradication of Memory Accomplished with Complete Simplicity

  (PConline注:请原谅没有翻译。专有名词的翻译比较困难,而且很多东西翻译后就完全失去其原有的味道了。)

1.Emacs的历史

  • - 2.Emacs的作用—编辑文本(1)
  • - 3.Emacs的作用—编辑文本(2)
  • - 4.Emacs的作用—编辑文本(3)
  • - 5.Emacs的作用—编辑程序(1)
  • - 6.Emacs的作用—编辑程序(2)
  • - 7.Emacs的作用—作为其他程序的界面
  • - 8.Emacs的作用—作为操作系统(1)
  • - 9.Emacs的作用—作为操作系统(2)
  • - 10.Emacs的作用—煮咖啡;相关资料
  • -
  • 二、Emacs 能做什么

      很多人不理解为什么 Emacs 的用户那么多,他们是如此的热爱 Emacs,甚至有的人把它当成了“信仰”。虽然笔者没有这个信仰,但是它的确很好,很喜欢用它编辑各种文件,现在来看看 Emacs 能做什么。

      据笔者所知,Emacs 的能力包括:

      1.编辑文本

      Emacs 编辑文本的能力是非常强的。它的其它很多功能都是依赖于强大的编辑能力。Emacs 是人性化的设计,它非常可靠,不会莫名其妙弄坏你的文件,用它编辑重要的文本信心有保障。

      可能你开头觉得它的键绑定用起来非常不顺手。它有很多长长的 “快捷键”,比如按下Ctrl-h再按Ctrl-i…… 比起 VIM 的一个键的快捷键的确慢很多。但是 Emacs 的优势不在于击键的频率,它的目标是用一个键,甚至不按键盘,就完成复杂而智能的操作。面对 Emacs,你感觉自己像是一个魔法师,轻轻一挥魔棒,任务就完成了。

      Emacs 的文本处理能力极强,不管你要处理自然语言还是机器语言。不管是中文还是英语,不管是小说、HTML,还是 C 程序、Java 程序,都可以按 M-e 向前移动一句话(C和Java语句),按 M-k 删除一句话,按 M-} 移动一段话,按 M-p (笔者自己设定的按键) 删除一段话。因为 Emacs 知道,什么样算是一句话 (sentence-end),什么算是一段话(paragraph-start)。而且它知道在不同的文档里,句子和段落有什么区别。

      笔者只要按 M-q 就可以把一段话排的规规矩矩。只要按一个键就可以把一个数字列表重新排序。在 HTML 文档里只要按 C-c backspace 就可以把一组tag删掉,按C-c C-c i 就可以插入一个图片,按 C-c C-v 就可以马上把这个文档送到一个 Mozilla 窗口去预览……在 LaTeX 文档里按 C-c C-r RET 就可以把文档里选定的区域送给 LaTeX 处理,马上看到效果。

      现在你是不是感觉自己更像魔法师了?继续!

    图1 Windows下的emacs(+上图可点击放大)

      Emacs 有非常友好而强大的人机界面。在搜索替换字符串时,你就能明显感觉到这个优点。它在输入regexp(正则表达式)搜索的时候还能进行 incremental search,而且对部分匹配的字串都有非常漂亮的加量。在替换的时候,它独有 recursive edit,可以打断替换过程,编辑附近的需要纠正的文字,然后继续替换。这个功能对很多人都是非常重要的,因为,在替换过程中,被替换的文字附近的文字很可能会因为它被替换而需要修改。看看这个抓图,就是 isearch 输入一个正则表达式的情况。

    图2 用isearch输入正则表达式(+上图可点击放大)

1.Emacs的历史

  • - 2.Emacs的作用—编辑文本(1)
  • - 3.Emacs的作用—编辑文本(2)
  • - 4.Emacs的作用—编辑文本(3)
  • - 5.Emacs的作用—编辑程序(1)
  • - 6.Emacs的作用—编辑程序(2)
  • - 7.Emacs的作用—作为其他程序的界面
  • - 8.Emacs的作用—作为操作系统(1)
  • - 9.Emacs的作用—作为操作系统(2)
  • - 10.Emacs的作用—煮咖啡;相关资料
  • -
  •   Emacs 的拼写检查能力非常强大。你可以使用 flyspell 随时检查你的拼写错误,看看这幅图 是 flyspell-mode 的 LaTeX 文档, flyspell 知道段落里的某些单词是错的,而 \begin{myquotation} 里的 myquotation 被认为是一个用户自己定义的 LaTeX 环境名字而不认为是拼写错误。

    图3 flyspell检查出的拼写错误(+上图可点击放大)

      你还可以利用 ispell 的补全功能输入你容易打错的很长的英语单词,看看这幅图。

    图4 利用ispell输入比较长的单词(+上图可点击放大)

      Emacs 的 hippie-expand 能够非常智能的补全你的文本,文件名,和其它很多东西,而这个功能都是用同一个按键完成!

      Emacs 能输入和显示多国语言文本 ,是一个真正的国际化程序。

    图5 Emacs支持多国语言(+上图可点击放大)

1.Emacs的历史

  • - 2.Emacs的作用—编辑文本(1)
  • - 3.Emacs的作用—编辑文本(2)
  • - 4.Emacs的作用—编辑文本(3)
  • - 5.Emacs的作用—编辑程序(1)
  • - 6.Emacs的作用—编辑程序(2)
  • - 7.Emacs的作用—作为其他程序的界面
  • - 8.Emacs的作用—作为操作系统(1)
  • - 9.Emacs的作用—作为操作系统(2)
  • - 10.Emacs的作用—煮咖啡;相关资料
  • -
  •   Emacs 能识别多种自然语言符号,它能知道哪些符号是括号,那些是标点。看看这个抓图里,Emacs 显示了中文书名号的匹配情况。 《正确》,和《错误> 。

    图6 书名号的匹配(一)(+上图可点击放大)

    图7 书名号的匹配(二)(+上图可点击放大)

      Emacs 的键是可以任意绑定的。甚至可以使用 Windows 键盘上的 Win 和 Menu 键来控制。笔者的“Win + 鼠标中键”可以弹出一个buffer 里所有引用到的文件和URL的列表,当点击它们就可以编辑那个文件或者在 Mozilla 中打开连接,如图8。

    图8 笔者的“Win + 鼠标中键”功能(+上图可点击放大)

      你能想到的和你不能想到的编辑功能,Emacs 都能完成。说到这里你可能又会说:“这个功能,vi也有”,“这个功能, UltraEdit 都有”……对,这些能力可能很多其它程序也有。对,但是让一个 Emacs 拥有这些功能比起其它程序的确要费少得多的力气。很多热心的爱好者看到其它编辑器有一个很酷的功能,他就可以想办法把它加入到 Emacs 里面。Emacs 可以被不断的扩充。其实,你平常用到的几乎所有功能都是扩展的功能。

      建立一个微小的基本功能的集合,然后把所有复杂功能作为这些基本功能的组合。这体现了一种程序设计的哲学。不同于 Windows, 也不同于 UNIX,它更好的协调了程序的灵活性和同一性。

      Emacs 编辑文本方面的扩展简直没法计数。folding、 narrow、 outline……这些给人带来了很大的方便,已经被许许多多的人采用。

1.Emacs的历史

  • - 2.Emacs的作用—编辑文本(1)
  • - 3.Emacs的作用—编辑文本(2)
  • - 4.Emacs的作用—编辑文本(3)
  • - 5.Emacs的作用—编辑程序(1)
  • - 6.Emacs的作用—编辑程序(2)
  • - 7.Emacs的作用—作为其他程序的界面
  • - 8.Emacs的作用—作为操作系统(1)
  • - 9.Emacs的作用—作为操作系统(2)
  • - 10.Emacs的作用—煮咖啡;相关资料
  • -
  •   2.编辑程序

      程序也是一种特殊的文本文件。因为 Emacs 特别适合编辑程序,所以特别在这里提出。Emacs 可以方便的编辑任何类型的计算机语言程序代码,而且为它们提供语法加亮,自动缩进。你可以对程序的语句进行操作。比如向下移动一个 list,删除整个 C 函数…… 你可以用一个键就把许多行注释重新排的整整齐齐。

      一些扩展可以让你方便的浏览代码,而且它们可以识别代码的语义。列出函数名、参数和类型、变量名、类、宏、方法、defun、include 的文件。当你编辑程序时,Emacs 可以帮你补全函数名,参数等等。你可以在代码中间自由的穿梭。

      你可以使用 Ediff 来比较两个或者三个文件,Emacs 可以把不同的地方高亮,而且修改过的地方有特别明显的颜色不同。笔者经常用这个功能很快找到修改过的代码里新出现的错误的位置,如图8。

    图9 Emacs上的高亮功能(+上图可点击放大)

      你用一个指头就可以让 Emacs 调用编译器编译程序,列出错误列表,启动调试器,在另一个窗口显示当前执行源代码的位置。

1.Emacs的历史

  • - 2.Emacs的作用—编辑文本(1)
  • - 3.Emacs的作用—编辑文本(2)
  • - 4.Emacs的作用—编辑文本(3)
  • - 5.Emacs的作用—编辑程序(1)
  • - 6.Emacs的作用—编辑程序(2)
  • - 7.Emacs的作用—作为其他程序的界面
  • - 8.Emacs的作用—作为操作系统(1)
  • - 9.Emacs的作用—作为操作系统(2)
  • - 10.Emacs的作用—煮咖啡;相关资料
  • -
  •   Emacs 的 narrow 和 folding 功能使你能够编辑几万行代码在一个文件里而不会觉得摸不着方向。看看这幅图,你能想像这是 TeX 的源代码的 24000 多行里的一部分吗?你操作它的时候就像只有几十行。

    图10 Emacs的narrow功能(+上图可点击放大)

      folding 可以使你的很长的文档折叠起来,看看这幅图就是一个很长的网页,在需要的时候可以进入其中一个主题进行编辑,当退出主题时,整个文档看起来就像只有一页那么长。可以随意的移动主题,就像只移动了一行。

    图11 Emacs的folding功能(+上图可点击放大)

      加上一些 elisp,Emacs 就可以成为一个代码浏览器。

    1.Emacs的历史

    • - 2.Emacs的作用—编辑文本(1)
    • - 3.Emacs的作用—编辑文本(2)
    • - 4.Emacs的作用—编辑文本(3)
    • - 5.Emacs的作用—编辑程序(1)
    • - 6.Emacs的作用—编辑程序(2)
    • - 7.Emacs的作用—作为其他程序的界面
    • - 8.Emacs的作用—作为操作系统(1)
    • - 9.Emacs的作用—作为操作系统(2)
    • - 10.Emacs的作用—煮咖啡;相关资料
    • -
    •   3.作为其它程序的界面

        Emacs 可以作为很多程序的前端。比如w3m、lynx(两者都是浏览器)、MAXIMA 计算机代数系统、Scheme48等Scheme 解释器、shell……这些文本方式的程序一旦与 Emacs 接合就拥有了巨大的编辑的能力。如图13,Scheme48 加上 Emacs,就有了语法加亮和方便的热键,可以非常方便的使用Scheme 解释器了。

      图12 Emacs上用w3m浏览网页(+上图可点击放大)

      图13 Emacs加Scheme48后的强大语法加亮功能-

1.Emacs的历史

  • - 2.Emacs的作用—编辑文本(1)
  • - 3.Emacs的作用—编辑文本(2)
  • - 4.Emacs的作用—编辑文本(3)
  • - 5.Emacs的作用—编辑程序(1)
  • - 6.Emacs的作用—编辑程序(2)
  • - 7.Emacs的作用—作为其他程序的界面
  • - 8.Emacs的作用—作为操作系统(1)
  • - 9.Emacs的作用—作为操作系统(2)
  • - 10.Emacs的作用—煮咖啡;相关资料
  • -
  •   4.作为操作系统

      Emacs 就像一个具有编辑功能的操作系统,你可以用它干很多事情。比如:阅读email和新闻组、浏览网页、管理文件目录 (dired)、作为网页服务器、远程编辑文件、记录日程、约会提醒、电子日历、查字典、ICQ 聊天、放 mp3……

    图14 用Emacs新闻组(+上图可点击放大)

    图15 用Emacs管理文件目录 (dired)(+上图可点击放大)

1.Emacs的历史

  • - 2.Emacs的作用—编辑文本(1)
  • - 3.Emacs的作用—编辑文本(2)
  • - 4.Emacs的作用—编辑文本(3)
  • - 5.Emacs的作用—编辑程序(1)
  • - 6.Emacs的作用—编辑程序(2)
  • - 7.Emacs的作用—作为其他程序的界面
  • - 8.Emacs的作用—作为操作系统(1)
  • - 9.Emacs的作用—作为操作系统(2)
  • - 10.Emacs的作用—煮咖啡;相关资料
  • -
  • 图16 Emacs上的电子日历(+上图可点击放大)

    图17 在Emacs上查字典(+上图可点击放大)

1.Emacs的历史

  • - 2.Emacs的作用—编辑文本(1)
  • - 3.Emacs的作用—编辑文本(2)
  • - 4.Emacs的作用—编辑文本(3)
  • - 5.Emacs的作用—编辑程序(1)
  • - 6.Emacs的作用—编辑程序(2)
  • - 7.Emacs的作用—作为其他程序的界面
  • - 8.Emacs的作用—作为操作系统(1)
  • - 9.Emacs的作用—作为操作系统(2)
  • - 10.Emacs的作用—煮咖啡;相关资料
  • -
  •   5.煮咖啡

      如果你工作的地方有自动咖啡机,Emacs 还可以帮你点咖啡。 :)

      煮咖啡的方法,请参见这里。(原链接于9月12日不能用,给出的是Google快照的内容。)

    三、Emacs的相关资料

      1.Emacs 主页:这里能找到很多信息。

      2.Emacs FTP:这里能下载到 Emacs 的发行版。

      3.Emacs CVS:这里能下载到最新的 CVS 版本的 Emacs。

      4.SourceForce.net:这里有许许多多 Emacs 相关的程序,从提供基本操作方便的, 到浏览代码,编辑程序,…… 内容非常广泛。

      5.EmacsWiki:一个非常好的 WiKi 网站。里面有很多Emacs的使用技巧。

      6.dotemacs:一个搜集 .emacs 文件的网站。你可以从这里学习怎么配置 .emacs.

Emacs是一种信仰!世界最强编辑器介绍相关推荐

  1. Emacs是一种信仰!世界最强编辑器介绍 (转自王珢)

    编者按:这个世界最强是个怎么样的强法呢?一说:Emacs是一种"信仰".另说:世界上的程序员分三种,一种使用Emacs,一种使用vim,剩余的是其它.(完全无视其他编辑器的存在-- ...

  2. 世界500强公司要求员工必须熟练掌握的七种工作方法

    <世界500强公司要求员工必须熟练掌握的七种工作方法,收好不谢!> 精选一 工作讲究方法,找到了好方法可以让你的工作事半功倍,而没有头绪.没有计划.没有目标的工作形式则会让你身心俱疲还毫无 ...

  3. 世界500强坚决不用的13种人

    世界500强坚决不用的13种人 美国著名人力资源专家詹姆斯.希尔曼多年潜心研究世界500强企业的用人之道,惊讶地发现有13种人是世界500强企业最讨厌也是坚决不用之人.于是他写成了<世界500强 ...

  4. 使用VIM是一种信仰

    使用VIM是一种信仰 VIM,道上有"文本编辑器之王"之称.正如一贯的绝世兵器,VIM以其强大的功能和可定制性称霸一方王土(ps: 另一方是Emacs,并有这样一说,世界上的程序员 ...

  5. 【正一专栏】爱是一种信仰

    爱是一种信仰 对于巴萨对尤文这场比赛,是一点也不看好的,但是作为巴萨球迷,还是希望有奇迹发生.于是晚上8点多就睡觉,到1点多就醒了,睡不着.本来闹钟是调到3:45看下半场的比赛,但是到1点半就睡不着, ...

  6. 肯耐珂萨助力世界500强零售企业在线春招:单次面试3000人

    "今年874万应届毕业生太难了",据官方统计数据显示,毕业生人数比2019年还要多40万,这已经是继2008年之后连续12年的人数上涨.加之春招不赶巧,撞上了新冠肺炎疫情,不出意外 ...

  7. 2022年财富世界500强研究报告

    第一章 排行榜概况 1.1 榜单简介 <财富>(Fortune Magazine)是一本由美国人亨利·卢斯创办于1930年(庚午年),主要刊登经济问题研究文章的杂志.现隶属时代华纳集团旗下 ...

  8. 恒大通关世界500强:一家房企的进阶路与中国民营企业的边界探索

    "我们大力呼唤立足中国.走向全球的伟大公司和世界级公司的出现." 民企在这方面可以大有所为,也必须有所为.曾经,许家印把恒大的历史划分为两个十一年:从1996年到2006年是打基础 ...

  9. 余承东吐槽iPhone X长的丑体验差;雷军称小米明年要进世界500强;特斯拉股价被指太荒唐丨价值早报

    第[762]期早报由[周日]赞助播出 01 今日头条 美媒称,中关村已取代硅谷成为全球最大的科技中心 据美国<福布斯>双周刊网站称,美国商业资源企业"专家市场"(Exp ...

最新文章

  1. AI一分钟 | 教育部公布高中新课标,编程、算法思维成必修内容;李彦宏否认百度会“All in AI”
  2. AngularJs快速上手掌握
  3. 如何用Matlab求矩阵的秩、乘积、逆、行列式的值、转置
  4. LeetCode77:Combinations
  5. mysql如果数据不存在,则插入新数据,否则更新
  6. sql server 海量数据速度提升:SQL优化-索引(9) 【转】
  7. scrapy保存、中断、继续执行爬虫程序
  8. 常见 Java 异常解释(恶搞版)
  9. linux 文件同步脚本,Linux rsync同步文件脚本
  10. python标准库——datetime模块
  11. java map 遍历取值_遍历 MAP 集合取值方式
  12. 惠普暗影精灵2更新bios系统,防止电池鼓包
  13. MQL5:创建自己的指标
  14. 银行业务头条体系推广
  15. java雪崩_了解java架构之微服务架构—雪崩效应
  16. 模拟二进制交叉算子详解
  17. Ceph Calamari Server RPM编译
  18. wannier插值能带拟合1
  19. 【hexo】基础教程-三-添加网易云音乐
  20. 企业网站[正能量系列]失业的程序员(一)

热门文章

  1. js 秒转换成时分秒
  2. 禾赛40M如何成功在rviz中显示点云数据
  3. song -用函数画彩虹
  4. 创建一个闪亮的应用程序以使用rtweet和R搜索Twitter
  5. 微信公众平台网页服务器,微信公众号——网页端
  6. 用java语言画一个可视化日历
  7. 倒计时,距离活动还有0天0时0分0秒
  8. Java:使用Java调用打印机进行打印(JPG、PDF和Word三种文件格式)
  9. ChatGPT 之后,再玩玩 Stable-Diffusion
  10. 培养孩子讲故事的心得