生产力提高10倍?不见得。我倾向于认为乘法因子更像1.1,它在一段时间后会累加。
Steve Yegge所说的实际上是对成为Emacs 专家的一种反映,而这些很少见。实现这种乘法效果的人们通过编写elisp来定制Emacs以满足他们的特定需求,从而积极地定制Emacs体验。例如,Yegge写了ejacs。解读Yegge报价严格意味着您正在自定义Emacs,以使其更易于自定义/扩展Emacs。
这是我分解适用于Emacs 的各种专业知识的方式:
- 一个新手知道如何运行的Emacs,移动光标,做一些修改,退出Emacs。
- 一个高级的初学者知道如何将一些基本的自定义内容放入他们的中
.emacs
,或者已经将其他人的完整内容完全复制.emacs
到了他们中。他们知道如何进行全局键绑定,require
内置程序包,启用次要模式。
- 合格的 Emacs用户拥有大
.emacs
文件,可能会分成多个文件。他们下载并使用非标准软件包,知道如何查找命令,模式的文档,查看现有的键绑定,对次要模式和主要模式之间的差异感到满意。合格的用户通常会将单个Emacs实例运行几天/几周,从他们的Emacs编写,编译,运行和调试程序。
- 熟练的用户乐于编写emacs lisp,创建自己的交互式命令,并乐于编写次要模式。熟练的用户可以查看emacs lisp代码以更好地了解他们所使用的模式,使用elisp调试器以及通常使用劣等流程(shell,lisp流程等)。
- 熟练的 Emacs用户从头开始编写新的主要模式,查找和修改Emacs的C代码,了解什么是递归编辑并使用它,使用进程间通信将Emacs与外部工具集成。他们还阅读了emacs-devel邮件列表。
由于您是在寻求个人经验,因此这里列举了一些我个人所做的事,这些例子使我觉得自己效率更高。注意:我碰巧在一家不适合开发环境前沿的公司工作,例如,我们仍然使用CVS。
- 我将Emacs与错误跟踪工具集成在一起:提交时,它将在错误字段中记录文件名和版本,然后从Emacs中查看我的错误,分配它们,解决它们,等等。
- 我写了一个连接我的产品(日常工作)和Emacs的桥梁,有效地使我的产品成为劣等的流程-使我能够即时更改源代码。
- 我通过在标签中查找文件扩展了TAGS处理,它提供了许多适合我的开发环境的快捷方式。
- 我编写了一种模式,该模式可以获取回归结果,并使我能够跳到故障,检查日志文件,重新运行一个或多个测试或以最小的击键次数进入调试运行。
- 我每周的状态报告(是的,我使用Emacs进行电子邮件发送)是使用我整个星期内所做的提交自动生成的。
这些是我为针对环境和工作流程专门定制Emacs而进行的更改。
我的工作效率比周围其他人高10倍吗?没有。
但是,对于我的日常工作,我可以通过几次击键来完成许多其他人在其非定制环境中花费很多时间才能完成的任务,并且通常需要他们在编辑器和Web浏览器或Shell之间切换。 。
他们是令人震惊的例子吗?否。我确定我所做的很多事情都已经在Visual Studio中提供了。我的文章会让您回到埃马克斯教堂吗?可能不会。
但是,如果您在开发环境中看到一种行为模式,并且有这样的诉求告诉您:“我真的不必一遍又一遍地执行X / Y / Z,如果我只能...”,那么我建议尝试使用Emacs抓痒。这种刮擦可能是史蒂夫·耶格(Steve Yegge)所说的“自我强化”道路的第一步。
次要注意事项:我不知道有很多(任何?)真正熟练的Emacs用户正在积极使用堆栈溢出站点,或者至少,他们没有回答与Emacs相关的问题。我说这是基于堆栈溢出的emacs和elisp标签的最高用户。