您的位置:首页 > 运维架构 > Linux

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

2013-11-10 16:26 330 查看

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.

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  linux基础