您的位置:首页 > 大数据 > 人工智能

一年成为Emacs高手(像神一样使用编辑器) .--http://blog.csdn.net/redguardtoo/article/details/7222501

2012-12-18 22:42 387 查看
一年成为Emacs高手(像神一样使用编辑器)

分类:
其他
Linux 2012-01-31 16:35
19830人阅读
评论(75)
收藏
举报

emacsgoogleyoutubelisptwitter

目录(?)[+]

Table of Contents
为什么要学习Emacs可选

和单纯的IDE比较Emacs可以做的更多更快
使用Emacs可以立刻开始工作
一年指的是充分利用空闲时间一年后自然水到渠成
态度决定一切

读官方教程
以兴趣和急需解决的问题作为切入点
站在巨人的肩膀上
在twitter上以emacs en定期搜索
在google plus上搜索emacs相关内容
订阅Emacs牛人的博客
在stackoverflow上搜索emacs相关的讨论
github是我的新欢
使用google快讯
将emacs配置管理起来
将emacs相关资料管理起来
订阅EmacsWiki
到youtube上看emacs相关的视频
认识到Emacs是一种生活方式
小结
联系我
答疑

我已是Vi高手为什么要转到Emacs来
使用牛人的Emacs的配置后发觉界面有些奇怪的bug怎么改
如有任何关于具体如何配置Emacs的问题
使用牛人的配置后启动emacs报错如何解决
为什么我用了牛人的配置后自己额外添加的插件无效
我想用Windows版本的Emacs而不是Cygwin版本的Emacs怎么做
为什么Emacs启动时从服务器elpa安装第三方软件包package会失败

作者: 陈斌(redguardtoo)

注意: 我会长期维护本文,请参考下面的更新时间

版本号: 20121115

更新时间: 2012-11-15 四

原创时间: 2012-01-31 周二 15:08

很容易.一年多前我还在Vi阵营,偶尔使用Emacs还总是忘记`退出`(C-x C-c)的快捷键,但是一年后我跨入高手行列.

现在网上很多中文文章都是和你强调Emacs有多牛,以激发你的兴趣.最有名的大概是王垠Emacs是一种信仰!世界最强编辑器介绍.

这些好文章让你激动,你因此定下来一个伟大崇高的目标(掌握神一样的编辑器Emacs),接下来的关键就是执行了(如何高效地学习Emacs).

国内关于"如何做"的文章不多,那些涉及到"如何做"的文章,涉及细节比较多,而谈一般方法论的较少,所以本文的重点就是谈谈一般方法,

Table of Contents

1 为什么要学习Emacs(可选)

1.1 和单纯的IDE比较,Emacs可以做的更多更快
1.2 使用Emacs可以立刻开始工作.
1.3 一年指的是充分利用空闲时间,一年后自然水到渠成
1.4 态度决定一切

2 读官方教程
3 以兴趣和急需解决的问题作为切入点
4 站在巨人的肩膀上
5 在twitter上以"emacs :en"定期搜索
6 在google plus上搜索emacs相关内容
7 订阅Emacs牛人的博客
8 在stackoverflow上搜索emacs相关的讨论
9 github是我的新欢
10 使用google快讯
11 将emacs配置管理起来
12 将emacs相关资料管理起来
13 订阅EmacsWiki
14 到youtube上看emacs相关的视频
15 认识到Emacs是一种生活方式
16 小结
17 联系我
18 答疑

18.1 我已是Vi高手,为什么要转到Emacs来?
18.2 使用牛人的Emacs的配置后,发觉界面有些奇怪的bug,怎么改?
18.3 如有任何关于具体如何配置Emacs的问题
18.4 使用牛人的配置后启动emacs报错,如何解决?
18.5 为什么我用了牛人的配置后自己额外添加的插件无效
18.6 我想用Windows版本的Emacs而不是Cygwin版本的Emacs,怎么做?
18.7 为什么Emacs启动时从服务器(elpa)安装第三方软件包(package)会失败?

1 为什么要学习Emacs(可选)

简单谈谈,因为我本文的重点是"怎么做",而不是"为什么".

1.1 和单纯的IDE比较,Emacs可以做的更多更快

这里的更多并不是和IDE比支持某编程语言的特性更多,而是指Emacs内可完成的通用任务比较多更快捷.

例如,我做开发时碰到难题,需要实时上IRC请教国外高手(工作流包括粘贴我的代码到pastebin或者gist,在irc内提问,看网页,将解决方案粘贴回来),emacs集成了IRC工具和浏览器(w3m),操作就很方便.

我使用Visual Studio多年了,Firefox使用我也是高手,相信我,大多数情况下还是Emacs更快.

当然口说无凭,请看以下两段高手操作的youtube视频:

Writing PPT with org-mode and beamer in Emacs

Emacs Power: Can your editor do THIS!

1.2 使用Emacs可以立刻开始工作.

软件是开源的,配置是纯文本,而且软件的资源消耗较小,安装包很小(命令行版本的安装包30M左右),所以在任何环境下我都可以用Emacs开始工作,overhead很小.

这在大项目中特别明显,例如,某项目我需要同时编辑perl,java,C,bash,SQL,需要远程编辑在美国服务器上的代码,网速也不是很快.Emacs的优势就体现出来了.

1.3 一年指的是充分利用空闲时间,一年后自然水到渠成

我没有说一年内必须什么事也不干专门学Emacs,悬梁刺股没有短期利益回报的学习方法是我最反对的.

我赞成的方法是,开始阶段花极少的时间得到巨大的回报(如下文谈到的Org-mode),以兴趣做导向.

每天花多少时间取决于个人需要和如何管理,以我为例,每天八小时上班时间中有很多零碎时间可以利用,上下班通勤时间有一个小时可以利用.

1.4 态度决定一切

长期来说你能取得的成就是由态度决定的.

优秀人士的两个特点:

勇于接受新事物
追求更强的过程本身就是目的;

2 读官方教程

打开Emacs后,按Alt-x,输入help-with-tutorial,回车.

第一步,仅需要半小时.关于Emacs的多难学的谬论可以休矣,因为半小时的代价微不足道.想想你去年有多少小时白白虚度了吧.

3 以兴趣和急需解决的问题作为切入点

因为如果微小的努力能得到巨大的回报,你就会越学越有乐趣,进入一个感情上的正反馈.

长期来说,在任何领域要成为高手,兴趣是最重要的.

以我为例,我急需GTD的工具,emacs的而org-mode是世界上最好的GTD工具(没有之一).在使用org-mode大大节省了时间后,对于emacs爱屋及乌,兴趣高涨了100倍.

4 站在巨人的肩膀上

这方面我是个负面榜样.开始阶段我还是抱着玩的心态,喜欢到处找有趣的配置粘贴到我的.emacs中去.

完全是浪费时间!

我应该一开始就照抄 世界级大师Steve Purcellemacs配置(注意,Purcell的af5ca840版本支持Emacs23.1及更高版本,在Linux/OSX/Cygwin下测试过,更高版本只保证支持emacs24,因purcell只在mac下用emacs24版本,如果一定要使用emacs23,可考虑我的版本,网址见后文).

我请求你不要重复我的错误,不要质疑,不要创新,跟着Steve Purcell做.

顺便说一下,Steve Purcell的配置需要git才能更新,这意味着你需要安装git和cygwin(限于windows平台).这是买一送二,我又给你介绍了两个高手必备的世界级工具.

考虑到我的热情会被认为是传销,而我的严密逻辑和事实论证可能被忽视,我有必要简单明了地说明推崇Steve Purcell原因:

已有很多人推荐他的配置(请google)
能力出众,背景相当好(我已调查过他的Linkedin Profile)
人近中年,心智成熟(例如,他只在Mac下使用Emacs24,但是能够根据我在Linux/Cygwin下使用Emacs23的需求做调整).
工程经验丰富(看他的代码一目了然)
勇于求新,不断尝试新插件,在他这个年龄极为突出

以上事实在我给出的网址中稍作调查即可得知.

5 在twitter上以"emacs :en"定期搜索

twitter人多,更新结果快

6 在google plus上搜索emacs相关内容

google plus技术geek比例高,我推荐Xah Lee,他的个人网站为李杀网, 其账号名为ErgoEmacs.Xah Lee每周二会在Google Plus上组织一次Emacs问答.

7 订阅Emacs牛人的博客

最好的是Planet Emacsen,是多个Emacs博客的集合.

8 在stackoverflow上搜索emacs相关的讨论

google "emacs-related-keywords site:stackoverflow.com"

我会定期搜索,同样的帖子反复精读.因为stackoverflow上的讨论质量很高.

9 github是我的新欢

github的版本控制服务很好.现在它的社区化倾向越来越强了,我喜欢.

例如,可以看一下https://github.com/languages/Emacs%20Lisp上最酷的Emacs插件.

10 使用google快讯

每周一次给我邮箱发一次摘要,仅限最佳结果.这样的话信息质量可以得到保证

11 将emacs配置管理起来

我将emacs配置纳入github的版本控制,见https://github.com/redguardtoo/emacs.d.

版本控制可以是认为一个集中式的知识管理,任何时刻任何地点对Emacs配置的修改都要及时上传和合并(merge).这点对于个人能力的长期积累很重要.

12 将emacs相关资料管理起来

我将我收集的所有Emacs相关资讯都放在dropbox的服务器上,然后用dropbox的软件同步资料到我的智能手机和我的IPad上,这样我可以充分利用空闲时间学习.

我目前在读<An Introduction to Programming in Emacs Lisp by Robert J. Chassell>和<Writing
GNU Emacs Extensions by Bob Glickstein>.

点击这里注册dropbox帐号.注意,dropbox客户端完全可以在国内使用,虽然访问其首页可能有点问题.

13 订阅EmacsWiki

EmacsWiki是一个社区维护的Emacs文档,可以认为是最酷插件和最佳实践的集合点.

14 到youtube上看emacs相关的视频

例如,我就是看了Google Tech Talks上这个Org-mode作者的介绍而爱上org-mode.

15 认识到Emacs是一种生活方式

如果你照着我以上的做法做,就可以认识到Emacs牛人其他也很牛.Emacs实际上体现了牛人的一种生活方式.

像那些牛人一样思考,像那些牛人一样做事,不要怀疑,不要犹豫,很快你就会发觉自己也开始有些牛人的气质了.

例如,Sacha Chua就是这样一个有牛人气质的女孩,这是她的Youtube录像. 她学习Emacs的方式是让Emacs自动将手册语音合成,
这样她在房间里走来走去的时候也可以听文档了.

想想看, 这些用Emacs的人都是什么样的Geek啊!所以,我认为Emacs不仅仅是一种工具,它是个社区,一种文化.

对我而言,加入Emacs社区让我学会了谦卑.当我明白了Emacs的其朴素的设计思想和其强大的可拓展性后,我的感觉是敬畏,因为我做不出这样的软件.

我既没有能力把一个编辑器设计成一个人工智能语言Lisp的平台,也不可能花30多年的时间对一个软件精益求精.

16 小结

看到这里你应该很清楚了,我的方法就是以兴趣作为切入点,以天才作为榜样,大量阅读,大量练习.

如果你想获得真才实学,想变得更强,变得更优秀,这就是唯一的方法,唯一的捷径.

这个方法不是我发明的,古往今来的杰出人士都是这么做的,如果你需要一点"更科学的"论证,请参考一万小时天才理论.

17 联系我

这是我的twittergoogle plus以及微博,也可以通过我的email<chenbin
DOT sh AT GMAIL DOT COM>联系我.我也在新浪weibo.com上开通账号emacsguru.

我的主力博客为http://blog.binchen.org.

我不会回答Emacs配置的具体问题,因为如果你通读本文,应该知道哪里找答案更好.

18 答疑

18.1 我已是Vi高手,为什么要转到Emacs来?

嘿嘿,我也是Vi精通后转到Emacs的.我转换阵营的原因就是因为Emacs的强大(例如和gdb的完美结合)以及其脚本语言是lisp.

当然Vi的多模式编辑和快捷键比Emacs要高效得多,所以最佳方案是Vi的快捷键加上Emacs的强大.

目前我在用evil-mode,在Emacs下模拟Vim操作,结合了两者的优点.简单地说,现在我的运行模式"神用编辑器之神".

18.2 使用牛人的Emacs的配置后,发觉界面有些奇怪的bug,怎么改?

不要改!参考上文[站在巨人的肩膀上]一章,你觉得奇怪可能是因为缺乏经验,把某些特性误认为是bug.请坚持至少一年.

例如,有人向我反映,在编辑任何文本的时候,会发觉右边约第80列处总有一竖线,希望能去掉.这实际上是一特性,提醒你每一行不要宽度不要超过第80列.这里是每行不要超过80列的原因.

我建议你学习Emacs的第一年的原则应是,理解而不判断.

18.3 如有任何关于具体如何配置Emacs的问题

请善用google和我提供的信息例如:

在.emacs.d中的init.el文件起什么作用? google "emacswiki init.el"

18.4 使用牛人的配置后启动emacs报错,如何解决?

重新启动emacs,带上"–debug-init"参数,然后将显示的错误信息及环境报告牛人,给我也行.报告bug的方式最好是用github的bug跟踪系统.

18.5 为什么我用了牛人的配置后自己额外添加的插件无效

Emacs是个开放平台,其众多插件release之前并不一定有严格的测试.所以插件之间可能有冲突.

这也是我为什么建议初学者直接使用牛人配置的原因,因为牛人已经解决了众多兼容性的问题,你只要直接享受他的服务就行了.

即使你发觉了牛人尚未来得及处理的bug,最有效的方法是提交bug报告给牛人,而不是自己去钻研elisp.

18.6 我想用Windows版本的Emacs而不是Cygwin版本的Emacs,怎么做?

需要对基本的命令行操作有一定的熟悉.关键知识点有两个:

设置HOME环境变量,因为.emacs.d中的某些elisp脚本假定.emacd.d在HOME所指的路径中.
Emacs的某些功能需要使用第三方的命令行工具,这些工具的路径应该添加至环境变量PATH中(可选,原因见后面).
替代步骤2的另一更好的方法是使用第三方插件将Windows版本的Emacs和Cygwin的工具和*文档*完美结合,参考我(redguardtoo)在stackoverflow上的回答.不过需要更多的配置.

如果你不知道如何在Windows下添加修改环境变量,不知道如何安装第三方工具,建议还是先用cygwin中的Emacs,因为cygwin已自带某些工具,没有的话,安装也和方便.且在cygwin下环境变量HOME默认已有.

第三方命令行工具清单请参考上文我的.emacs.d中的README(Steve Purcell没有列出这些工具,因他只用OS X).

18.7 为什么Emacs启动时从服务器(elpa)安装第三方软件包(package)会失败?

请启动Emacs后,运行M-x list-packages以从服务器更新最新的软件索引,然后重启Emacs即可.

分享到:

上一篇:好用的提高生产力的Firefox插件LeechBlock
下一篇:初学者使用Emacs的难点
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: