Emacs被称为神之编辑器,用起来感觉是什么样子呢?我们来看看一个Emacs程序员的一天。
闹铃响了, 周一真不想上班, 可是想想那几十年的房贷,瞬间充满斗志,我骨碌一下就爬了起来。
9点半就到了公司,居然没多少人,周日加班的那帮家伙估计还没起床。
打开电脑,启动心爱的Emacs。这才想起了昨天晚上微信群里的一场口水战,居然有人喷Emacs, 他们是中IDE的毒太深了,体会不到Emacs的美。
我承认,IDEA, Eclipse在Java领域做得很好,但是这个世界上还有很多别的语言啊,比如我现在开发的是Elixir项目,上哪儿去找像IDEA, VS那样的IDE?更不用说那么多小众语言了。
好的开始是成功的一半, 先规划一下今天的工作吧, 进入Emacs org-mode , 把今天要做的任务整成ToDo列表。
可能有人会觉得奇怪,怎么在编辑器里搞ToDo啊?这也正是Emacs强悍的地方,不仅仅是写代码,有很多非常优秀的插件,能完成各种各样的事情。
打开文件, 开始编程, 代码导航,代码格式化,跳转,多光标编辑,补全,模板等等等等你能想到的想不到的,Emacs 统统能满足。
如果有特殊需求,我就自己去定制,去修改插件,你没看错,Emacs的插件源码都是开放的, 我能找到那个地方,覆盖它,实现新的功能,这样我就不用祈祷着IDE下一版本升级包含这个特殊需求了。
我的地盘我还做不了主,还得看别人眼色?笑话!当然, 你得会一点儿Lisp,因为Emacs中绝大部分插件和配置文件,都是用Emacs Lisp写的。
昨天的微信群中有人担心只用键盘,快捷键太多记不住啊。其实我也记不住啊,我只能记得住高频使用的那些,以及自定义的顺手的那些,剩下的都交给模糊补全啦,只要输入几个零星的字母就好。而且 Emacs 自带的帮助文档非常全,遇到不会的直接问 Emacs 就好啦。
写完了代码,肯定要提交啊,是时候祭出magit这个大杀器了, the magical Git interface, 可以快速、方便、直观地操作Git。
可能有人要问了,这些功能我的IDE也有啊, 还是GUI的,很漂亮哦 !
其实Emacs比键鼠操作的GUI好在它允许你用同一种方式,操作不同的东西,所以使用Emacs就有一种流畅的感觉。 编辑,查找,光标定位,撤销代码,格式化代码,多文件,多窗口,git,commit,blame,历史回溯,代码片段。这些用熟练是一个整体的感觉。
提升效率的核心还是编辑本身非常流畅,编辑流畅思路才能流畅,不是吗?
我这么说估计你也体会不到,还有可能被别人说成是装逼,懂我的自然懂,不懂的自然不懂,不再解释了。
一口气写了两个小时的代码,遇到一个技术问题,Google 一下,嗯,这个解决方案不错,以后用得着, 用Org Capture 把它记录到笔记中。
领导走过来布置了一个任务,不太紧急, 用Org Capture记录到我的Todo中, 下午再做,别把我当前的编程思路给打断了。
中午吃饭的时候,张大胖说Java之父高司令和自由软件领袖/GNU Emacs作者/GCC作者Richard Matthew Stallman (RMS)撕起来了,说高司令撕RMS是因为RMS偷了他的Emacs代码。
张大胖看我的眼神中透漏着一丝狡黠,那厮似乎在嘲笑我用的Emacs是偷来的.....
唉,这其实已经成为一个悬案了,我都懒得搭理他,我决定一周内不在码农翻身上回答他任何技术问题,以示惩罚。
下午的时候就没有那么高效率了,开了上一个迭代的总结会,又开了下一个迭代的计划会,还有接口协调会,更要命的是生产环境出了一个Bug,花了两个小时才定位修复 ......
转眼就是6点45,我Emacs中的Todo列表不降反增, 晚上加班不可避免。
唉, 再好的工具也搞不定这么多的工作量啊。
吃完晚饭, 偷一会儿懒,用Emacs看一会儿小说, 然后再和用Emacs的好友们聊一会儿,Emacs社区牛人太多,那些真正的黑客们都用Emacs, 社区氛围极好, 能学习的东西太多了。
晚上10点,下班回家,用Emacs写下这篇文章,以示纪念。