Emacs才是世界上最强的IDE - 序言

读书的时候, 我们实验室的一位同学经常在摆弄emacs和vim, 跟我说他们是如何如何的强大, 当时我正在摆弄让我神魂颠倒的计算机象棋, 就没有去学emacs. 毕业之后, 很幸运的来到一个安全公司做搜索引擎开发, 由于我们是在linux下开发, 而我们组长是用emacs开发, 所以我们小组也基本都用emacs开发, 因此我也就开始了我的emacs之旅.
没想到一去不复返, 我被emacs深深的迷住了, 这是继计算机象棋之后, 第二个令我深深着迷的东西. 到目前为之, 我使用emacs整整3年, 这三年一直都用emacs做开发, 包括c/c++/elisp/java/shell/ruby, 花了很多时间去弄emacs, 但是我相信付出是值得的, 因为我相信一个好的工具能极大的提高工作效率.
由于亲身感受emacs的强大, 所以经常向朋友们推荐emacs, 不过当我向他们推荐emacs的时候, 一般有两种情况, 不知道emacs的, 问emacs是什么, 知道emacs的说, emacs不就是一个编辑器吗, 在这里, 我想大声的告诉他们, emacs才是世界上最强大的IDE!!!
那我为什么说emacs才是世界上最强大的IDE呢? 我有什么依据吗?
我们先来看看强大的IDE应该具备哪样的强软素质.
我认为, 一个强大的IDE至少在以下几个方面做的强大, 才能够称的上是强大的IDE.
基本功能:
- 打开文件和切换buffer(即一般的IDE中切换已经打开的文件)
- 基本编辑
- 阅读
- 光标定位
- 查找
- 按键(即windows下常说的快捷键)与命令
- 帮助系统
高级功能:
- 代码折叠
- 矩形区域
- javadoc和doxygen的自动生成
- 代码补全
- 代码浏览
- 编译和调试
- 版本控制
- 模板
- 日常生活
- 定制和扩展
- 其他一些小的高级功能
接下来, 我会分几个系列来讲emacs的这些方面.
已完成的系列:
- Emacs才是世界上最强大的IDE - 智能的改变光标形状
- Emacs才是世界上最强大的IDE - 用auto-complete实现自动补全
- Emacs才是世界上最强大的IDE - cedet的安装
- Emacs才是世界上最强大的IDE - 用w3m浏览网页
- Emacs才是世界上最强大的IDE - 高亮光标处单词
- Emacs才是世界上最强大的IDE - 用linum+智能显示行号
- Emacs才是世界上最强大的IDE - 用Emaci阅读文件
敬请期待:
- Emacs才是世界上最强大的IDE - 打开文件和浏览buffer
- Emacs才是世界上最强大的IDE - 切换buffer
- Emacs才是世界上最强大的IDE - 代码折叠
- Emacs才是世界上最强大的IDE - Emacs下的代码片段补全yasnippet
- Emacs才是世界上最强大的IDE - 增强auto-complete: auto-complete plus
- Emacs才是世界上最强大的IDE - 小技巧,大智慧
- Emacs才是世界上最强大的IDE - 在Emacs里用multi-term操作shell
- Emacs才是世界上最强大的IDE - 在Emacs里用ediff比较文件
- Emacs才是世界上最强大的IDE - 用Emacs做版本控制

GD Star Rating
loading...
标签:buffer, c/c++, C/C++, CEDET, cursor, cursor-change, ede, ediff, Elisp, emaci, Emacs, highlight, highlight-symbol, IDE, java, linum+, linum-plus, linux, lisp, screenshot, se, select-buffer, snippet, term, vi, vim, w3m, windows, yasnippet, 代码折叠, 代码补全, 光标, 安装, 定制, 开发, 扩展, 按键, 搜索引擎, 模板, 比较文件, 编译, 自动补全, 行号, 补全, 调试loading...
很期待下文,看过你的googlecode里面的一些配置,很精彩。
[回复]
ahei 回复:
十一月 13th, 2009 at 9:19 下午
呵呵, 谢谢支持. 不过不要太急啊, 最近在狂学Emacs, 有好多想法, 想要写出来
[回复]
emacs自己这个学期也是疯狂的学习中,非常喜欢,不知有无计划介绍计划介绍gnus(mew),emacs-w3m,emms,auctex这些使emacs成为os的套件。自己也有计划写文章介绍emacs,还是由于学期时间太紧未遂。期待博主可以更新文章学习交流。
[回复]
ahei 回复:
十一月 13th, 2009 at 11:34 下午
gnus我还没用过,不过据说很强大,准备最近学习一下, 主要是以前不太上新闻组, 看email的频率也不大, 就没学了, 最近常上水木, 所以准备学习一下.
w3m的话, 我用过一段时间, 虽然用起来非常方便, 但是毕竟好多有css的都不能显示的好看, 所以我现在基本没用它, 其实我想, 要是Emacs下有个能自己做图形渲染的浏览器就好了, 不过到时候如果时间够的话, 也会介绍一下w3m.conkeror这个gui浏览器模仿Emacs的操作, 挺不错的,你可以试试,它一开始是firefox的一个插件, 现在脱离firefox了, 不过firefox下的插件基本上它都能兼容使用.
emms嘛, 我不怎么听歌, 没用过,:)
关于LaTeX, 呵呵, 不好意思, 我很少用到, 所以auctex也就没用过了.
我主要是就我熟悉的内容介绍一下Emacs的强大, 另外主要是Emacs在编辑,开发方面的功能.当然Emacs其他的强大的功能,我熟悉的话, 也会介绍的, 比如dired.
我到时候准备写个类似total commander的包, 不过, 这个计划排在很后面啦,
[回复]
gnus应该是很想当强大而复杂,只是在win上没配只成功过,因此后来在win上用的mew,它的配色还真是舒服,功能也很强大,主要是用来接收googlegroups的邮件,后来发现还是web端合适,filter总是不完美。国内的usenet还真是不多,叹息。
w3m还是蛮实用的插件,自己用muse或是org写完文章生成html,直接用w3m浏览下,还是很方便的。conkeror不是很喜欢,这方面是不如vimperator。
emms自己配置的比较多,倒是请教过其中的一个作者,帮助很大,自己也写过一篇相关的文章。
latex自己写一些文章还是会用用,排版效果的确好。
dired自己用的比较少,都是用资源管理器解决,tc也有安装,但基本只是用来编辑环境变量,很浪费。
感觉在win上用emacs真是更折腾,相应的工具(w3m,mplayer,stunnel)都要自己安装,你主要用的emacs是远程的工作机吗?
[回复]
ahei 回复:
十一月 14th, 2009 at 12:43 上午
哈哈,看来你也是夜猫子啊
我dired用的还是挺多的
因为机器上好多资料,经常要去找
我因为emacs字体难看,配置麻烦,就一直是远程使用emacs,现在配置搞定了,回家就用emacs windows版本,
在公司的话是在Ubuntu下用emacs, 由于emacs gui版本支持的颜色丰富, 而且我也把fixedsys字体配置成功了, 所以我现在主要是在Ubuntu下使用emacs gui版本, 我的emacs截图以后基本上是在Ubuntu下截.在windows下用emacs有点暴殄天物啊, multi-term害的我用不了,find-grep也不能用(懒的配)
[回复]
自己的资料基本还算有条理,因此整理还算方便,dired在win上打的折扣很大。
关于字体的设置,emacs真的是最优秀的,自己分别为英文,中文,日文和韩文设置了不同的字体,想当的方便。
最近又安装了debian,总算linux下也可以上网了,emacs的确是比在windows上强大多了。
multi-term在windows不能用的确可惜,windows下连个好的terminal都没有,偶尔用用eshell,但是好几次碰到管道的问题,后来还是基本用cmd了。
建议实施gnuwin32+msys(rxvt),cygwin自己实在不是很喜欢。
[回复]
ahei 回复:
十一月 14th, 2009 at 1:14 上午
恩,Emacs字体确实优秀, 不过总感觉配置麻烦,
我用cygwin, 不过启动很慢, 用的也少.我基本上还是在Ubuntu下用的多
[回复]
看了你的blog,我都想要学Emacs了。
[回复]
ahei 回复:
十二月 10th, 2009 at 9:53 上午
必须的,:),同时我也很高兴我的努力宣传起到了作用。
[回复]
呵呵,看了你的emacs教程,确实挺不错,以前学过一段时间VIM可是没有坚持下来,觉得怎么调都不顺手,今天试试emacs,但是还是觉得贵在坚持
[回复]
ahei 回复:
二月 5th, 2010 at 2:37 上午
@aax, 我个人一直觉得兴趣才是学习的最大动力。我开始用linux的时候,越用越觉得它太强大了,特别有兴趣学,从来不觉得累。开始用上emacs后,更是觉得它太强大了,自然兴趣就足,更本不需要坚持去学,自己自然而然的就想去学。如果你对它不是很感兴趣的话,恐怕只有自己去坚持了。我觉得如果你对它不是很感兴趣的话,就要去找一些可能会引起你感兴趣的地方,比如你喜欢的某个功能它特别强大。个人的一点见解,
[回复]
aax 回复:
二月 5th, 2010 at 8:59 上午
@ahei, 我是很感兴趣,可是平时学习用不到,附近同学也没用的,学的很慢,也很苦恼,呵呵
[回复]
ahei 回复:
二月 5th, 2010 at 9:29 上午
很感兴趣就好。要找地方使用阿,比如,你总要写点文档啥吧,文字的话可以使用emacs阿,还可以试试emacs的org。或者你要写程序吧,也可以用emacs阿。还或者,emacs可以做文件管理器,还可以收发email,还可以上twitter,等等等等。而且工作之后,用emacs的也很少。我待过的三个公司,都做linux方面的开发,但是基本上每个公司只有2,3个人用emacs,精通的就更不用说了,用vi的人倒是挺多,但是精通的人也是凤毛麟角。
[回复]
aax 回复:
二月 8th, 2010 at 11:35 上午
@ahei, 呵呵,先膜拜下,以后跟踪你博客学了
[回复]
ahei 回复:
二月 8th, 2010 at 12:44 下午
呵呵,谢谢支持.
[回复]
0) 有无对应vim里*;#的搜索功能?就是搜索当前光标所在词。或者怎么用lisp实现吧。。。(我是懒人。。总想找现成的)
1) emacs有没有对于vim里taglist的东东?就是把一个.c文件里的宏/全局变量/函数在边上都列出来,可以直接搜索/跳转。 speedbar貌似太heavy了,没有taglist好用
2) emacs有没有内置类似screen的功能?个人经常变换桌面机器,一般都是ssh到linux主机,screen+vim干活,这样万一断网也没事(特别是用无线连接的时候,抱着机器换个房间就断线了)。但screen的命令都是Ctrl+a开头,用emacs就不是很方便。。。
谢谢。。。
[回复]
ahei 回复:
二月 24th, 2010 at 2:29 下午
0. 在Emacs中使用vi的*和#命令
1. 我对这方面不太感兴趣, 我知道的就speedbar了, semantic还有个可以跳转到指定tag的命令semantic-complete-jump-local
2. 曾经也用过screen, 但是用了之后觉得screen的快捷键还不是很方便, Emacs下有个multi-term插件, 可以在Emacs里直接用shell, 与直接操作shell基本上是一样, 包括bash那些快捷键C-a C-e都支持, 非常的方便, 然后你可以在shell里面可以直接操作screen. 我的multi-term的配置文件http://code.google.com/p/dea/source/browse/trunk/my-lisps/multi-term-settings.el
[回复]
VimerTryEmacs 回复:
二月 24th, 2010 at 7:09 下午
@ahei,
Thanks!
用screen主要是想在screen里跑emacs,而不是相反
很多时候都是在远程工作,希望在server上永远跑着emacs,随时随地可以连上去干活。网络好的时候VNC可以解决这个问题。但如果带宽比较小(比如在家VPN到公司),screen就很有用了。。。
[回复]
VimerTryEmacs 回复:
二月 24th, 2010 at 7:18 下午
@VimerTryEmacs,
我一开始的表述不是很清楚,“emacs有没有内置类似screen的功能?” 我的意思是有没有一个本地的emacs client,可以连上emacs server,即使网络偶然断了,还是可以重新连上,这样的功能。。
[回复]
ahei 回复:
二月 25th, 2010 at 6:24 上午
@VimerTryEmacs, 我还是搞不懂你的意思,你ssh到远程的服务器,开个screen,启动好emacs,这时即使网络断了,你过会重新连到服务器上,打开screen,emacs不是还照样在吗?你的意思是不用screen,看emacs有没有这样的功能是吗?emacs23有个类似这样的功能,emacs –daemon启动emacs,emacs会以daemon的形式在后台启动,然后你想编辑文件的话emacsclient file就可以了。
[回复]
ahei 回复:
二月 25th, 2010 at 1:18 上午
这个意思阿,那我就不知道了,所以我一直不太喜欢screen,定制的东西还不够多
[回复]
transtone 回复:
二月 25th, 2010 at 8:20 上午
@ahei,
screen当然是早用早受益,一个终端复制器而已,想定制什么呢?
俺用的是byobu,一个screen前端。
[回复]
ahei 回复:
二月 25th, 2010 at 8:24 上午
我很少使用screen,主要是基于这个原因,简单的,我用nohup就行了,复杂点的,比如emacs,那些键又被screen给劫持了,本来emacs下我需要的键就很多,所以就不太想给它了,而且我的环境出现断网的情况也不多
[回复]
匿名 回复:
二月 25th, 2010 at 10:45 下午
@ahei,
screen 可以定制 prefix key binding
[回复]
ahei 回复:
二月 26th, 2010 at 1:28 上午
我知道是可以定制的,那点定制性screen还是有的,不过不还是占用了一个键嘛,emacs的按键本来就很紧张阿
[回复]
transtone 回复:
二月 25th, 2010 at 11:31 下午
@ahei, prefix key我是换成 C-l 来用的,这样右手用起来很方便,也避免胃和其他快捷键冲突。
[回复]
ahei 回复:
二月 26th, 2010 at 1:24 上午
C-l默认的是emacs的刷新键,很常用阿
[回复]
你的blog很不错,我这里的同事看到notepad++和vim就惊为神器了。我也很难向他们推广emacs,他们用windows比较多。emacs在windows上就是残废。。。
话说你的emacs配置文件那么多,启动要多久?我把所有的东西都放在一个文件里,就为启动快点。用过一段时间emacs daemon但是cpu占用老有问题。我的版本控制基本只用git
[回复]
ahei 回复:
三月 2nd, 2010 at 1:45 下午
谢谢支持!
也还好了,虽然Emacs在Windows下失色不少, 但还是很不错了.
我的Emacs启动也还好了, 不慢的, 而且每天也只要启动一次啊, 慢点也无所谓了.
你把所有的配置放在一个文件和分开来放其实启动速度是一样的.
[回复]
强烈建议你用下org mode,和Muse
[回复]
ahei 回复:
三月 11th, 2010 at 1:45 下午
@fangzhzh, 呵呵,一定
[回复]
以前一直用vim,直到到上家公司里,头儿用emacs做一切事情,劈里啪啦的有时候我眼睛都跟不上他都做了什么操作….然后就膜拜emacs,然后就一直强迫自己用emacs,却发现自己总是那么菜,主要是小拇指非常不灵活
[回复]
ahei 回复:
四月 10th, 2010 at 3:32 下午
呵呵, 多用就好了, 贵在坚持
[回复]
暄子 回复:
四月 11th, 2010 at 8:56 上午
@ahei, 昌平?
[回复]
ahei 回复:
四月 11th, 2010 at 10:00 上午
@暄子, what?
[回复]