Emacs是什么?
Emacs
2016-03-06 1492字

Emacs 是一种生活方式

Emacs 不仅仅只是一个编辑器, 也不仅仅是一个操作系统, 它更像是编程高手为了追逐编程至高境界的一种生活方式:简洁、纯粹、高效

Emacs从功能上除了强大的编辑器功能以外, 它还是:

几乎一切你需要的功能, Emacs本质上就是一个基于Elisp热交换之上构建的完整操作系统, 真正的Emacs高手是全键盘生活在Emacs之中, 不需要任何Emacs以外的工具就可以满足编程生活中所有事情。

Emacs 的操作哲学

Emacs的哲学强调两点:

  1. 指尖移动的艺术
  2. 工具协作生态

指尖移动的艺术, 能够完全做到的只有Emacs和VI, 编程最重要的不是什么IDE的智能补全和其他花哨的功能, 黑客心中的一个完美的编程工具最需要满足的就是能够让他“高度专注”, 只有高度专注, 才能达到编程心流合一的至高境界, 才能直达问题的本质进行深度思考。

而高度专注的编程环境其实很简单, 一就是干干净净编程界面, 越干净越朴素越好, 真正的编程高手不需要工具来帮辅导。 二就是所有操作都是全键盘操作, 不要一会键盘一会鼠标, 全键盘操作的效率最高, 编程一旦来了感觉, 本身就是高速思维的过程, 一动鼠标就会导致思考的注意力被打断, 很多编程人员之所以不能成为高手的重要原因就是编程工具本身, 大多数编程工具都会在很多基本的光标操作上不断的切换到鼠标, 最后导致编程人员无法专注于思考问题和表达解决方案上, 而是被怎么快速进行高级编辑操作上怎么使用鼠标而分心, 编程能力的高低与编程专注度以及光标移动的条件反射度成正比, 光标移动操作本身越条件反射越高(就是你的手指头已经下意识的记住各种操作, 甚至你自己都记不住快捷键, 但是一旦你的手指头放到键盘上就会知道怎么按快捷键), 基本操作对编程专注思考的打断越少, 进入深度思考的速度越快和持续时间越长, 最终成长速度就会成倍增长。

在指尖移动上, Emacs和VI都做的很好, 甚至在某些方面VI移动更为快速简洁, 真正让Emacs更为优秀的是他的对工具协作的设计。 编程最重要的还是持续专注的深度思考, 如果指尖移动是为了避免编程操作频繁被鼠标打断思路的话, 工具协作就是为了避免在多个工具中协作中来回切换而打断专注力。比如说, 我们在编程过程中, 用的最多的几个工具就是编辑器, 文件管理器, 终端和浏览器, 如果我们用的不是Tile WM, 在这几个工具之间来回切换的时候, 人需要浪费巨大的脑力在怎么记住交换信息上, 从而减少了我们的专注力。很多VI党很喜欢用Tile WM和Tmux把几个工具平铺式分屏协作起来, 就是为了提高多个工具协作式的专注力。其实Emacs本身就是一个结合所有Tile WM和Tmux工具特点的窗口管理器, Emacs的每一项工具可能不是该领域最好的工具, 但是Emacs的每个插件和应用的操作方式几乎一模一样, 随着工具组合的增加, 操作和学习成本几乎为零, 一旦这些操作方式一样的工具协作起来, 工具之间来回切换和工具内操作方式都可以以相同的方式进行全键盘操作, 这种组合的威力才是Emacs真正超越其他工具最重要的一点。

总结来说Emacs黑客做了这么多插件和应用的目的不是为了技术炫耀, 而是统一编程操作和工具协作操纵方面的使用体验, 让所有的操作都指头潜意识化。 提升编程人员的专注力才是Emacs最终追求的目标, 专注力的本质上提高才能从根本上提高编程能力, 这也是为什么全世界那么多Emacs黑客常年生活在Emacs中, 因为太舒服了, 世界上没有任何一款其他工具或操作系统能够提供这么爽的编程环境。

所以Emacs其实是一种生活方式…